pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как транслировать потокое видео с экрана компьютера на веб-страницу?

Лучший ответ: вы переизобрели MJPEG. он используется во всяких системах видеонаблюдения т.к. из-за минимального кол-ва сжатия дает хорошие стопкадры. главный недостаток - по той-же причине потребляет огромное кол-во трафика (реально огромное, видео на 5-10 минут с фпс 20+ в этом формате будет занимать пару гб). Выше в комментариях советовали использвать вебртс. Так вот, на всякий случай - он тут нахрен не нужен. Но обратить внимание на H.264 который там используется можно. Что видео в mjpeg, что h.264 можно просто и без лишних телодвижений открыть в браузере как стрим. А нативная поддержка видеокодека в браузере будет работать быстрее чем рендер кадров джаваскриптом.

Худший ответ: Для передачи и отображения -- WebRTC
Вопрос: Какие задачи решаются на C++?

Лучший ответ:  Какие задачи решаются на C++?
Обычно сложные.

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

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

Худший ответ: Настройка в три строки...Profiling PHP Applications with Xdebug, WinCacheGr...
Вопрос: Почему VS 2015 неправильно воспринимает l-value ссылки?

Лучший ответ: VS разрешает выстрелить в ногу, если вам того хочется.
1. Не пишите так, если вам это было не нужно (экономили строчку кода, да?)
2. Передавайте по константной ссылке, тогда никаких проблем не будет и в GCC.

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

Лучший ответ: Так делают, когда нужно обеспечить поддержку разных версий подключаемых либ. И обеспечить работу там, где нет такого класса. 
Пример:
В php7 добавилась функция error_clear_last
Если ты запустишь такой код в php7, то все будет окvar_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
но если в php5 то будет ошибка
----
Теперь другая ситуация, объявляем в php5function error_clear_last() {}
будет все ок, но в PHP7 будет ошибка тк существует уже такая встроенная функция
----
Задача, надо чтобы работало и там и тамif (!function_exists('error_clear_last')) {
    function error_clear_last() {}
}
В итоге, в PHP7 функция уже существует и будет использоваться встроенная, в PHP5 функция не существует и будет использоваться твоя.
У тебя, тоже самое, только с классами.

Худший ответ: Судя по всему это заглушка. Итам где "some shit" указываются методы заглушки. А ваш код выдаст ошибку если такого класса нет.
Вопрос: Как переопределить константу?

Лучший ответ: Проще переопределить метод.

Худший ответ: https://translate.google.com/#auto/ru/constant
константы не меняются.
Вопрос: На чем написан фронтенд cloud.mail.ru (angular, react, vue)?

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

Худший ответ: на нем и написан. Там даже код не минифицирован, видимо до того чтобы сделать продакшен конфиг руки не дошли 
https://cloud-landings-static.hb.bizmrg.com/omega-...
Вопрос: Как добавить метод (расширить класс) для объекта нативного класса в Ruby?

Лучший ответ: Добрый день.
Не нужно в классе Hash делать такой метод, т.к. любой хэш это валидный json
Пример:a = {'a'=>'n'}
a.to_json #=> Валидная строка в формате json
Можно, но я не рекомендую добавлять методы в руби классы, создайте лучше свой и работайте с ним, можете свой класс унаследовать от Hash и делать с ним что хотитеclass MyHash < Hash

  def foo_value?
    has_value? 'foo'
  end

end

a = MyHash.new
a[:a] = 'foo'
b = MyHash.new
b[:a] = 'baz'
p a.foo_value?
p b.foo_value?
Просто работать с кодом где много изменений в стандартных классах не удобно.

Худший ответ: Разобрался. Собсна все просто:class String
  def is_wtf_string?
    self == 'wtf'
  end
end
a = 'wtf'
p a.is_wtf_string? #=> true
#update Александр Швайкин навел на мысль, что так будет лучше:# ./ExtStandartClass.rb
module ExtString 
  def is_wtf_string?
    self == 'wtf'
  end
end

module ExtFixnum
  def squared
    self*self
  end
end

# добавим расширенные методы
class String; include ExtString; end
class Fixnum; include ExtFixnum; end


# ./SomeCode.rb
# include 'ExtStandartClass.rb'
# ...
a = 'wtf'
p a.is_wtf_string? #=> true
# ...
# где нибудь в коде если приспичит узнать что откуда
p a.method(:to_s) 
p a.method(:is_wtf_string?)
# аналогично
b = 5
p b.squared
p b.method(:to_s) 
p b.method(:squared)
Вопрос: Как сделать так что бы Media.css неперекрывал main.css, стоя на 2 позиции?

Лучший ответ: style.css.block { } // правильно
.block .elem { } // правильноmedia.css@media screen and (max-width: 1000px) {
    .elem { } // не правильно
    .block .elem { } // правильно
}

Худший ответ: Проверьте в media.css теги с окончаниями !important. Попробуйте удалить у них !important
Вопрос: Как создать видимость активности компьютера в интернете?

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

Худший ответ: Запишите свою обычную активность в интернете программой AU3Record.exe
В редакторе можно поместить получившийся код в бесконечный цикл, действия будут повторяться с заданной периодичностью, пока будет электричество и коннект сети)
Вопрос: При включении пк, куллер достигает 4000+ оборотов а проц 100 градусов, в чем проблема?

Лучший ответ: Почему-то система охлаждения не охлаждает процессор должным образом.
1. Или радиатор плохо прилегает к процу, например отломалась какая пластмассина
2. Или вышла из строя тепловая трубка
3. Или радиатор забит пылью
4. Или задубела термопаста и не работает.
Мало ли что - смотреть-щупать надо.
Если температура процессора 90 градусов и радиатор хорошо контачит - его температура не меньше 60, за него взяться невозможно. Это так?

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

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

Худший ответ: Проверьте периферию, проверьте не подключен ли wake on lan, нет ли задач в планировщике.
Вопрос: Аналог скрипта Эмёрдж от Ильи Бирмана?

Лучший ответ: Бирман особо и не прятал

Худший ответ: Не думаю что вам нужно прям управление загрузкой как у него, но если загрузку только при попадании в видимую часть экрана ищете то:
ruseller.com/lessons.php?id=476&rub=28
falbar.ru/article/id/161
webguruz.ru/web-developer/%D0%B7%D0%B0%D0%B3%D1%80...
Вопрос: Как вы мониторите скорость работы интерфейса у ваших клиентов?

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

Худший ответ: navigation timing api
Николай Сивко рассказывал на хайлоаде в 15 году https://www.slideshare.net/mobile/NikolaySivko/web...
Кто-то там по эксплуатации из хедхантера. Ныне okmeter.io сервис разрабатывают.
Вопрос: Как вы разрабатываете Rest API?

Лучший ответ: Поддерживаю тему с graphql - но тут надо понимать что для того чтобы его применять вам все равно нужно сначала создать REST API с основными CRUD-операциями из которых graphql уже будет собирать все что нужно.
По основной теме могу сказать что лучший подход для создания REST API с автоматической генерации Swagger/Open API спецификации который я видел называется "Model Driven Design" - вот статья о нем: https://strongloop.com/strongblog/node-js-api-tip-...
Статья от разработчиков loopback framework: https://loopback.io
Судя по вашему вопросу у вас бекенд на js поэтому можете попробовать его - это как раз специализированный фреймворк для создания API-серверов. Генерирует весь APi для всех моделей приложения автоматически + методы для всех реляционных связей + позволяет добавлять свои методы.
Для PHP-стека тоже есть решение: https://api-platform.com но оно пока что уступает loopback из-за неполной поддержки автоматического создания эндпоинтов для реляционных связей.
Моя рекомендация:
1) Прочитать про model driven design
2) Составить список моделей вашего приложения
3) Прописать поля, методы и связи каждой модели
4) Сгенерировать API по полученному описанию, документировать, приправить лучком, подать на стол

Худший ответ: Можете поделиться своими методами работы? 
Как-то у вас все сложно. У меня просто: пишется API, потом все это вносится в Postman, тестируется то, что не было с матюками протестировано в процессе работы и сдается.
Вопрос: Как установить UEFI на диск с Ubuntu 17?

Лучший ответ: Вы немного путаете что к чему.
UEFI загрузчик это всего лишь файл в специальном ESP разделе. При установке на UEFI системе такой создаст при установке и Windows, и Ubuntu. Судя по всему, такой раздел был на том диске, что вы отформатировали (зря, конечно, вы это сделали таким образом, но это поправимо). Теперь у вас есть система на втором диске, но нет возможности в неё загрузиться.
Для восстановления нужна будет флэшка или диск с Ubuntu.
Исправить это можно двумя способами:
1) Использовать ESP раздел что создала Windows
2) Уменьшить размер раздела с Ubuntu на втором диске и создать там FAT32 раздел, после чего поставить флаг ESP (делается в графическом режиме в Gparted с Ubuntu Live USB)
Перед следующими операциями монтируем раздел с Ubuntu в /mnt (например mount /dev/sdb1 /mnt, зависит от количества дисков и разметки).
После того как определились с ESP разделом что будет использоваться для Ubuntu смотрите в Gparted (или в терминале выполнив blkid) его UUID, редактируете /etc/fstab в разделе с Ubuntu, сменяя UUID диска что монтируется в /boot/efi.
После этого монтируете упомянутый раздел в /mnt/boot/efi. Далее заходите в chroot и запускаете dpkg-reconfigure grub-efi-amd64.
В chroot можно войти так:mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /sys
chroot /mnt
После этого у вас должна появиться директория /mnt/boot/efi/EFI/ubuntu и несколько файлов внутри. После этого Ubuntu должна быть доступна для загрузки в UEFI в меню выбора опций загрузки. Скорее всего GRUB2 подхватит Windows, так что можете сменить опцию по умолчанию на ubuntu если этого не случилось автоматически.

Худший ответ: UEFI поставить нельзя :) UEFI - это BIOS. То есть сверхBIOS. В BIOS есть настройка - в каком режиме грузиться с диска - UEFI или Legacy, можно и вообще Legacy для всех дисков отключить
Вопрос: Допустимо ли в поле формы согласия на отправку персональных данных иметь чекбокс поставленным по умолчанию?

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

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

Лучший ответ: Переходите на Firefox Beta.
Держать вкладки открытыми не рекомендую. Сейчас в JS-коде сайта встречаются даже майнеры биткоинов.
Часть старых дополнений перестанет работать, что даст еще больший прирост в производительности. Посмотрите основные альтернативные дополнения здесь.

Худший ответ: Tab Memory Usage - полезный плагин для FF - показывает на вкладках съеденную ими память. Очень помогает определить нехорошие сайты.
Вопрос: Как использовать настройку validate многократно для похожих контроллеров?

Лучший ответ: Если случится, что будете читать документацию, то встретите такую штуку:php artisan make:request
И не нужны никакие скоупы и трейты.

Худший ответ: я написал трэйт для модели куда сую правила для этой модели.
Вопрос: Магнитная или отслеживаемая краска/напыление?

Лучший ответ: Магнитная краска разумеется есть.
Честно говоря не понял почему Вы не нашли, первый же запрос  запрос в гугле выдает кучу ссылок www.tikkurila.ru/dlya_vashego_doma/produkty/magnetik
Но магнитная краска Вам скорее всего не поможет, т.к:
a) масса краски должна быть существенна на каждом летящем объекте, что внесет искажения
b) удар скорее всего будет на высокой скорости, весьма вероятно упругий, следовательно магниты за стеной нужны будут ДИКО мощные, что в свою очередь внесет искажения в траекторию, не говоря уже о цене вопроса мощных магнитов.
К счастью решение давно придумано, есть штука которая называется "баллистический гель"
Делается достаточно быстро и просто самому, в интернете полно рецептов. 
Залить на достаточную глубину блок размером со всю стену будет конечно достаточно геморройно, но imho это единственный рабочий вариант.UPD
В рамках бреда - если одновременно летит не сильно большое количество объектов, а зона сектора не особо маленькая - можно например физически разделить стену на не связанные между собой конструкции и прицепить к каждой датчик удара.

Худший ответ: Имитатор (simulator) не подойдёт? Например, краш-тест автомобилей можно выполнять на натуре, а можно на компьютере.
Вопрос: Как сохранить все фотографии из чужого инстаграма?

Лучший ответ: https://vibbi.com/instaport/ там же есть и функция скачать все фотографии разом.

Худший ответ: плагин для хрома.  качает по 1000 за раз
https://chrome.google.com/webstore/detail/instagra...
Вопрос: C# под linux или windows?

Лучший ответ: Для простых проектов Visual Studio Code хватает вполне. Поправить, собрать проект. Можно всякими плагинами обмазаться опять же.
Еще есть платный JetBrains Rider, но кому он не нравится после Visual Studio, кто-то не готов платить. 
Лучше всего писать под Виндой, но на обе/все платформы. Лично, это мой путь.

Худший ответ: С C# под Линукс сегодня проблем нет. Редактор может быть любой, есть .NET Core CLI.
Вопрос: Можно ли ставить оценки (звезды) приложению не переходя в Google Play и App Store?

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

Худший ответ: Можно ли получить брачный штамп в паспорте, не посещая ЗАГС? Ваш вопрос звучит очень похоже :)
Вопрос: Задачи по javascript?

Лучший ответ: codewars
P.S. Это не игры и не курсы, реальные (интересные) задачи, решив которые вы ещё и видите лучшее решение (скилл реально растет если уделять этому время)

Худший ответ: Пожалуй оставлю мой старый вопрос здесь - Какие задачи нужно уметь выполнять на JS начинающему?
И вот несложная задача. Сделайте подобный сервис - pomidorko.ru/. Здесь и события и таймеры и все остальное можно задействовать.
Вопрос: Почему в примерах кода в книге функции создаются после того, как используются?

Лучший ответ: Возможно вы упускаете заголовочные файлы.

Худший ответ: Предыдущие версии IDE это позволяли (при компиляции автоматом расставляли функции как надо).
Более свежие версии IDE уже так не вольничают и приходится строго следовать стандартам C++.
Вопрос: Нужно ли у заказчика спрашивать про фреймворки?

Лучший ответ: При выборе основных фреймоврков, если заказчик ничего не сказал, то нужно спросить есть ли у него какие-то предпочтения. Если нет, то уведомить какой фреймворк/либу собираетесь использовать. 
Это единственное правильное поведение.

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

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

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

Лучший ответ: потому что match() возвращает не строку, а массив. проверьте документацию

Худший ответ: Зачем все усложнять, можно ведь проще.if(alertParams['type'].search(/system/) > -1) {alert('есть такой')};
А вот пара ссылок по теме регулярок
javascript.ru/String/match
javascript.ru/RegExp
А вот тут можно попробовать свои регулярки, прямо online
https://regex101.com/
Вопрос: Как узнать какая память стоит в сервере?

Лучший ответ: вполне возможно что память китайская и в spd "лишние" параметры просто не вписаны.

Худший ответ: Обратитесь к производителю и его документации возможно там есть инструкции или программы (Superdoctor III) для сбора инвентаризации сервера.
https://www.supermicro.com/products/motherboard/Xe... 
www.supermicro.ru/files/manuals/MNL-1298.pdf
Там можно увидеть номера памяти по которым возможно просмотреть их спецификацию что подобрать такую же память
Вопрос: Увеличить отступы между словами на Wordpress сайте?

Лучший ответ: Есть ещё css свойство - word-spacing

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

Лучший ответ: Был почти в аналогичной ситуации, разве что без ипотеки. 
          На тот момент стукнул 31 годик. Купил mac mini, а поскольку когда сервера были живы, и у "опытных пользователей пк" ничего не ломалось, оставалось много свободного времени. Взял mac mini и книжку по objective c. Поначалу мозги реально плавились, так как до этого писал только по мелочи на delphi, хотел даже бросить нафиг.
       В итоге, 4 приложения в appstore было на тот момент, когда я оттуда свалил. Этот портфолио и помог найти новую работу, с оплатой на данный момент в несколько раз выше, плюс еще проги в appstore деньги приносят, хотя и не много. Самое смешное что первое приложение написанное самым быдло кодом, генерирует 90% доходов, приносит деньги уже 4 года и регулярно бывает в топах. К нему естественно выпущено много обновлений, но сильно трогать боюсь и плачу каждый раз когда смотрю на код.
        Вообщем, к чему я это пишу, я за мобильное направление ios или android, поскольку в других, в этом возрасте и без опыта, вы вряд ли кого нибудь заинтересуете.

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

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

Худший ответ: https://getbootstrap.com/docs/4.3/layout/grid/
пользуюсь брейкпоинтами bootstrap, хотя его не использую.
Вопрос: Возможна ли реинициализация Vuejs на статических данных php?

Лучший ответ: Обычная хотелка при скрещивании php с vue =)
Я толкаю массив данных в глобальный объект
Где на странице:<script type="text/javascript">
  window.__STATE__ = <?= json_encode($allData) ?>;
</script>
В vue компонентахcreated () {
  if (window.__STATE__ && window.__STATE__.myData) {
    this.myData = window.__STATE__.myData;
  } else {
    axios.get( .... )
  }
}
При использовании Vuex все еще проще, единственная проверка при инициализации стора.

Худший ответ: Где-то во view$this->registerJs("
    var myVueData = " . yii\helpers\Json::encode($model->attributes) . ";
");
Можно через виджет подключать, будут те же тапки, только как-то так$this->view->registerJs("
    var myVueData = " . yii\helpers\Json::encode($this->data) . ";
");
Вопрос: Можно ли через «музыкальный» Bluethoot передавать данные по uart во время работы?

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

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

Лучший ответ: prodaction пишется как production 
потому что в GIT не надо хранить настройки боевого сервера. В системе контроля хранят только исходники.
дальше их отправляют в CI (Непрерывная интеграция), которая в случае успешной сборки добавляет deploy скрипт под конкретный боевой production. И выкладывает на сервер, или выкладывает архив для ручного выкладывания.

Худший ответ: Добавлю ко всему вышесказанному, что в некоторых случаях (часто бывает с PHP, например) папка .git может оказаться в публичной директории и какие-нибудь злоумышленники могут стянуть все исходники сайта.
Вопрос: Front-end middle, Back-end nodejs — junior как выровнять уровень?

Лучший ответ: 1)Чем отличается синхронный код от ассинхронного и способы  написания последнего. Базовые знания JS(scope,this,e6).
2)Что такое eventloop, eventemitter. Запуск нескольких процессов ноды. Тестирование кода.
3)пес его знает. Express + mongoose + passport это самый минимум.
4)Рест апи с авторизацией и регистрацией, в виде блога или чата.

Худший ответ: 1. Посмотрите на сайте вакансий требования, которые предъявляются. 
2. Сходите на собеседование.
Вопрос: Стоит ли «дёргать» HR-компании?

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

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

Лучший ответ: 1. Вариант
Ищите и убирайте во всех контроллерах, где нужно убарть resize:$this->model_tool_image->resize
2. Вариант
Поправьте логику ресайза в system/library/image.php
Если я не ошибаюсь, вам будет достаточно заменить:$this->image = imagecreatetruecolor($width, $height);
на$this->image = imagecreatetruecolor($new_width, $new_height);
Тогда он просто отскейлит картинку до нужных размеров по одной из сторон. Потестите и подправьте под себе.
2 вариант предпочтительней. Т.к. совсем не ресайзить картинки плохая идея. У вас будут очень тяжелые страницы категорий и т.д.

Худший ответ: По мотивам этого вопроса наваял небольшой модификатор Don't Resize Product Images, который отменяет ресайз изображений товара в OpenCart.