pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как вместо таймера прописать дату?

Лучший ответ: У вас ведь есть секунды? $seconds = time()-$deposits['unixtime'];
А сколько секунд в сутках ? 86400
Значит если вы разделите все ваши секунды на 86400 (отбросив все, что после запятой) , то . получите дни. Если же получилось меньше единицы (типа 0.4545) - напишите "осталось меньше одного дня"

Худший ответ: Делай по аналогии с тем, что уже есть + нужна функция склонения существительных<?php
function tpl_tpluralForm($n, $form1, $form2, $form3)
{
    $n = abs($n) % 100;
    $n1 = $n % 10;
	
    if ($n > 10 && $n < 20) {
        return $form3;
    }
	
    if ($n1 > 1 && $n1 < 5) {
        return $form2;
    }
	
    if ($n1 == 1) {
    return $form1;
    }
	
    return $form3;
}

$seconds = 2*24*60*60 + 8*60*60;

$days = floor( $seconds / (24*60*60) );
$hours = $seconds < 24*60*60
              ? floor( $seconds / (60*60) )
              : floor( ($seconds % (24*60*60)) / (60*60) )
;
echo $days.' '.tpl_tpluralForm($days, 'день', 'дня', 'дней')
     .' '.$hours.' '.tpl_tpluralForm($hours, 'час', 'часа', 'часов');
Выведет: 2 дня 8 часов
Вопрос: Может ли вирус попасть в UEFI BIOS?

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

Худший ответ: BIOS - это просто исполняемая программа. Интеграторы вполне запросто врезают туда свои заставки например. А UEFI - так и вообще мини-ОС, для нее даже отдельные программы писать можно. При этом, если в UEFI сидит зараза - ее ессно никто и никогда не увидит :)

Ставить BIOS с левого сайта - это ССЗБ космического масштаба
Вопрос: Хватит ли 4гб ОЗУ на ноуте для программирования?

Лучший ответ: да. хватит.

Худший ответ: Хватит. Если пользоваться только блокнотом.
Вопрос: Обязательно ли использовать коллбэки или промисы при работе с базой mysql?

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

Худший ответ: Нагуглил я ответ))
https://habr.com/ru/post/150788/
Добрый человек не поленился описать суть проблемы с примерами кода.
Респект и уважуха
Вопрос: Куда пропало еще 2 ГБ оперативной памяти? Как правильно настроить файл подкачки в моём случае? Почему сильно загружается диск?

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

Худший ответ: Куда пропало еще 2 ГБ оперативной памяти?На предоставленных скриншотах не видно чтобы что-то пропало. Вся память на месте. Или вы насчет аппаратно зарезервированной - если да, тогда разберитесь кто и почему зарезервировал.Как правильно настроить файл подкачки в моём случае? Размер по выбору системы, размещение на SSD.Почему сильно загружается диск?Нехватка памяти, и как следствие интенсивное использование файла подкачки - это большая нагрузка на диск. Нормально ли его хранение не на системном диске?Нормально. Но разумеется это должен быть SSD диск.Как быть с сильной нагрузкой диска (грузится до 100% и начинаются жуткие лаги и фризы)?Устранить нагрузку, либо поставить более производительный диск.
Вопрос: Почему ни с того ни с сего перестают работать половина клавиш Acer Aspire e15?

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

Худший ответ: Думаю стоит в таком режиме попробовать удержать клавишу Fn и обратить внимание на третью маркировку на "проблемных" клавишах (того же цвета что и Fn)
Ну а потом поискать комбинацию Fn+ScrlLck/Fn+NumLck для переключения)
Вопрос: Что за ошибки при загрузке сайта (this.root.createShadowRoot is not a function)?

Лучший ответ: Если ещё актуально, то disk-button.min.js это скрипт Яндекс Диска, а точнее расширения Хрома, установленного у вас. Притом вываливает свою ошибку this.host.createShadowRoot is not a function даже на сайте Яндекса)))

Худший ответ: Если вдруг еще актуально, yobject.js принадлежит расширению Яндекс.Карточка, отключите его, и ошибки в консоли не будет
Вопрос: Что не так в этой рекурсии?

Лучший ответ: Что не так в этой рекурсии?
Она выглядит непонятно. Её можно переписать понятно так:int mul(const int *x, int n)
{
    assert(n > 0);
    if (n == 1)
        return x[0];
    if (n == 2)
        return x[0] * x[1];
    return mul(x, n / 2) * mul(x + n / 2, n - n / 2);
}

Худший ответ: Правильный вариант функции:int mul(int * arr, int N, int shift = 0)
{
    switch (N)
    {
        case 1:
            return arr[shift];
        break;

        case 2:
            return (arr[shift] * arr[shift + 1]);
        break;

        default:
            int M = N / 2;
            return (mul(arr, M, shift) * mul(arr, N - M, shift + M));
    }
}
В вашей функции последние три строки выполняются всегда, вне зависимости от длины массива. Поэтому происходит выход за границы массива.
Вопрос: Как разбить уже функционирующую сеть на VLAN?

Лучший ответ: VLAN - это не про IP, это на более низком уровне.
https://asp24.ru/novichkam/vlan-dlya-chaynikov/

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

Лучший ответ: Я бы использовал user_meta и json для хранения (вместо обычной строки). С json_decode и json_encode дело будете иметь с нормальным ассоциативным массивом.

Худший ответ: Для настроек пользователя есть user_meta. Туда и кладите. 
Я бы сохранял чистые свойства  а не html
Вопрос: Накрутка переходов из Яндекса для cообщества ВК, поможет ли попасть в топ?

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

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

Лучший ответ: Сохраните текст в отдельных текстовых файлах, и просто читайте их когда это понадобится.with open("success.txt", "r") as f:
    success_text = f.read()

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

Лучший ответ: Не берут, потому что HR как правило, не знают никаких законов, связанных с иностранцами и соответственно как их оформлять. А те кто знает, не хотят идти в ФМС, надо же отправить уведомление

Худший ответ: Это не риски, а прибабах руководства. Многие прекрасно принимают и не парятся. Вы же не думаете, например, что такие организации как например, EPAM беспокоятся на счёт этого вопроса когда они представлены вообще по всему земному шару? В случае проблем с государством всегда можно перевезти всех согласных сотрудников или же работать с ними удаленно
Вопрос: Почему когда я вешаю событие клика на кнопку, то при загрузке она сразу срабатывает?

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

Оборачивайте вызов функции в другую функцию. Или bind используйте. Или разберитесь, что принимают обработчики событий в качестве параметра, и перепишите функцию так, чтобы не надо было ей передавать элементы btnNextLevel.

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

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

Худший ответ: Отвечал уже
Вопрос: Почему input теряет фокус?

Лучший ответ: В данном случае используйте v-show (Почему?).

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

Пробуй скрывать свои дополнительные элементы через v-show, или стилями.
Вопрос: Удалена папка «Пользователи» Windows 10. Файлы исчезли. Что делать?

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

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

Если нет - только бэкап.

Если данные очень ценные - срочно выключить компьютер, и отдать специалистам.
Вопрос: Куда двигаться на новом рабочем месте?

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

Худший ответ: Судя по вашему тексту вы устроились в непрофильную компанию, да, дизайнер в такой компании всегда сам по себе. Но это плохо только с одной стороны, с другой — это открывает для вас возможности проявить инициативу. Советую вам не ждать задач, а самому их себе придумать, если руководитель этим не озаботился. Это покажет вас с наилучшей стороны и вы докажете свою эффективность.
Если вы работаете с интерфейсами, тот найдите слабые места в продуктах компании, придумайте решение и покажите руководителю презентацию о том, как их можно улучшить. Если вы работаете в условном департаменте маркетинга, то оглянитесь вокруг, если фирменные блокноты и ручки, которые вам выдали в первый рабочий день, выглядят убого, то сделайте новые, найдите типографию, позвоните узнать сколько стоит печать и придите с решением к руководителю.
Если вы проделаете подобную работу и не почувствуете, что её оценили, то можете смело со спокойной душой бежать куда подальше.
P.S. вы писали вопрос в конце года, возможно как раз поэтому не было работы — все уже отдыхают.
Вопрос: Возможно ли падение пропускной способности после переустановки Windows?

Лучший ответ: Возможно проблема в драйверах (речь о wifi?).
Windows поставила свои, а для полной скорости - нужны производителя.

Худший ответ: 1) Возможно дело в браузере. Яндекс или опера имеют встроенные dns или vpn соотвественно. 

У сервиса speedtest есть приложение официальное для windows. Оно доступно в microsoft store. Скачай и проверь скорость там.

2) Если скорость такая же, как в браузере - возможно действительно проблема в драйвере. Вбей название ноутбука в интернет и на вкладке поддержка будет все, что нужно.

3) Так же скорость интернета зависит от общей производительности устройства. Возможно раньше стояли другие настройки частот или другая схема питания. Попробуй сменить схему управления питания на панели управления.

4) Если и вправду ничего не помогает, то можно накатить чистый виндовс с майкрософт сайта.
Вопрос: Какую легкую ОС для nas сервера выбрать?

Лучший ответ: Какие есть OS для NAS?

Худший ответ: openmediavault довольно неплохая ос для NAS сервера
Вопрос: Есть ли какая-то библиотека реализующая подобное?

Лучший ответ: Вот накидал пример на canvas.

Худший ответ: еще вариант на SVGsnippet
Вопрос: Если фронтенд часть (React) живёт на сервере — это всё ещё фронтенд?

Лучший ответ: Вы нам из 2040 пишете? Такое ощущение что в вашем мире JS код в браузере никто не запускает уже лет 15.

SSR используется в 1% случаев, и то - практически всегда этот же код потом попадет в браузеры и будет там работать, поэтому ему нужен бабель, вебпак и все прочее. 

1. Браузер получает JS и выполняет его. Заэтим и нужно все перечисленное. 
2. в 2040 это наверное уже не важно, а в нашем 2020 все еще существует куча методов деплоить и разворачивать браузерные приложения.
3. Я не знаю где это у вас все считается на сервере, в нашем 2020 99% кода веб приложений все еще запускается в браузере. 1% - это сборка-транспиляция-дев-серверы. 
4. не можем, SSR не для этого, он для того чтобы отдавать клиенту изначально отрендеренный HTML и потом туда грузить приложение. Есть проекты которые рендерят веб-аппы в статические HTML, которые потом отдаются браузеру, но в нашем 2020 это пока еще экзотика.
5. Если довлеет. Но он нет. Хотя идея супер тонких видео клиентов витает в воздухе еще с тех времен когда люди, помнящие теплые ламповые майнфреймы закупились первыми ПК и стали предаваться ностальгии. Такие проекты тоже есть, но они в нашем 2020 еще большая экзотика чем SSR без активного клиента. Хотя я в подобном участвовал лично. 
Выразятся ли они в чем-то массовом или нет - время покажет. Мое мнение - нет, заметно проще и дешевле и эффективнее по многим параметрам нарисовать миллион веб страничек на миллионах клиентах, чем на одном большом сервере и отдать всем в виде видео.

Худший ответ: Товарищ, для начала тебе нужно узнать, как работает браузер и сервер, чтобы не задавать такие жёсткие вопросы. Оставь в покое реакт и ssr. Чтобы научится бегать, для начала нужно хотя бы научится ходить.
Вопрос: Как лучше синхронизировать асинхронные промисы?

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

Худший ответ: Для этого примера лучше всего если getContent() этим будет заниматься - отслеживать статус загрузки и если вызван еще раз с другими параметрами пока идет загрузка - предыдущую загрузку отменять и запускать новую. 
Сами по себе промисы не предназначены для "сихронизации" в том смысле в каком вы это слово применяете.
Вопрос: Программа виртуализации для MAC?

Лучший ответ: Но VmWare и Virtualbox не для MACшта???
обе их есть под макось. кроме этого есть еще parallels desktop.

Худший ответ: Это все есть для мак, на работе использую порой чтобы проекты под дебиан поднимать и интернет Эксплорер открывать
Вопрос: Что делать если при добавлении 4-ой планки оперативной памяти — компьютер перестаёт давать сигнал на монитор?

Лучший ответ: 
Покупать, подключать, слушать, гуглить.

Ну или воткнуть "проблемную" планку, вынув все прочие, убедиться, что она проблемная без всяких кавычек, и забить/забыть.

Худший ответ: То, что "компьютер перестаёт давать сигнал на монитор" - это вы как поняли? Он фактически загружается, загружается ОС, входит в сеть - это все видно по косвенным признакам? Т.е. всё ок, только нет видеосигнала? Или просто "не включается"?
Вопрос: Почему не работает require?

Лучший ответ: composer require setasign/fpdf:^1.8
в консоле

use setasign\Fpdf
в коде

Для ознакомления

Худший ответ: require у вас работает, иначе ругалось бы на нём. Вы вызываете $pdf=new FPDF(); находясь в нэймспэйме app\models, надо вызывать так $pdf=new \FPDF(); или указать название класса FPDF с нэймспэйсами если у него они есть
Вопрос: Реализовал RecyclerView, но дела до метода onCreateViewHolder даже не доходит! Какая может быть причина этому?

Лучший ответ: Ты изменяет данные в адаптере, но не нотифицируешь его об этом (notifyDatasetChanged, notify*, DiffUtil).

Худший ответ: FragmentSimulators.java
public class FragmentSimulators extends Fragment implements View.OnClickListener {

    RecyclerView RVSimulators;
    ArrayList<Simulators> simulators = new ArrayList<>();
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    FloatingActionButton floatingActionButton;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater,
                             @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_simulators, container, false);
        RVSimulators = (RecyclerView) view.findViewById(R.id.simulators_recycler);
        floatingActionButton = (FloatingActionButton) view.findViewById(R.id.fab);
        floatingActionButton.setOnClickListener(this);

        RVSimulators.setLayoutManager(new LinearLayoutManager(this.getActivity()));
        final DataAdapterSimulators adapter = new DataAdapterSimulators(this.getActivity(), simulators);
        RVSimulators.setAdapter(adapter);

        db.collection("simulators")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful()) {
                            for (QueryDocumentSnapshot document : task.getResult()) {
                                Simulators simulatorsClass = document.toObject(Simulators.class);
                                simulators.add(new Simulators(simulatorsClass.name, simulatorsClass.description, simulatorsClass.photoID));
                            }
                       
                            Log.d("logmy", "прогрузились документы");
                        } else {
                            Log.w("logmy", "Error getting documents.", task.getException());
                        }
                    }
                });
        return view;
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.fab:
                Intent intent = new Intent(FragmentSimulators.this.getContext(), AddSimulator.class);
                startActivity(intent);
                break;
        }
    }
}
Вопрос: Что значит такой код?

Лучший ответ: Документацию читать пробовали?
expressjs.com/ru/api.html#res.redirect
А в сочетании с return это делает то же самое, что и
res.redirect('/');
return;
В сумме с условием и res.render в конце это даёт:
Если пользователь залогинен, то перенаправляем его на страницу /, иначе отдаём ему страницу для логина.

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

Лучший ответ: В сентябре мы регнули 200 лямов аков за сутки через баг инсты, примерно только лям ботов был использован (продан, рассылал) и потом было не до этого. По мимо нас на рынке реги можно было найти не менее 5-10 млн акк в сутки. 
Чаще аки слали зарубежным пользователям ссылку на регистрацию в партнерской программе, а также к нам пришли из евромы/сша за покупкой аков. Считаем началом отправной точкой. 
Сейчас рега померла до 30-50тыс аков в сутки с 1 сервера и чистых проксей. Все кто работает на мобильных или приубитых проксях, тот банится. Плюс непонятно на чем вы работаете, есть ли у вас подмена отпечатка браузера и протокол WebRTC. 
Можете купить готовые аккаунты в агрегаторе deer.io ищите "инстаграм" а в описании брут или отлежка 3мес+

Худший ответ: IP шники с мабил? или с сервера?
Вопрос: Как исправить ошибку обращения к DHT?

Лучший ответ: Попробуйте для начала добавить вашу библиотеку в 

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

Худший ответ: Библиотеку установил?
Так пробовал?
#include "stDHT.h"
DHT sens(DHT11);
Вопрос: Android: Push-уведомления при закрытом приложении?

Лучший ответ: Да, надо делать через FCM, если хочешь стабильности и иметь меньше проблем.
В общем-то, он именно для этого и создан

Худший ответ: FCM позволяет слать пуши даже если оно закрыто, ты сервисом просто их ловишь и выводишь
Вопрос: Ошибка компиляции в .exe (Python), как решить?

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

Худший ответ: Насколько я понимаю ошибка не в коде.
У вас затесалась в текст последовательность символов, которая не переводится с/в UTF-8.
Вопрос: Насколько хорошо фитнес браслет делает ЭКГ?

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

Если кратко:

    В настоящий момент Apple Watch с функцией ЭКГ не предназначены для определения других проблем с сердцем, кроме ФП.

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

    Они НЕ МОГУТ точно обнаружить риск инфаркта. Даже полная ЭКГ с 12 отведениями может пропустить определённые признаки инфаркта.

    Они не считаются устройством, одобренным Управлением по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA). FDA просто выпускает разрешения, «предварительные формы одобрения 510к до выхода продукта на рынок», в которых недвусмысленно написано, что устройство не предназначено для людей моложе 22 лет. Устройство считается аппаратом для домашнего использования класса II – в этот класс входят презервативы и тесты на беременность. [в прошлом году FDA одобрила специальный ремешок для Apple Watch, измеряющий работу сердца, отметив его как медицинский аксессуар / прим. перев.]

    Они не являются устройством для постоянного отслеживания электрической активности сердца. Они могут отслеживать ЭКГ, только когда вы второй рукой прикасаетесь к колёсику.

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

Худший ответ: Устройство не является медицинском прибором!
Вопрос: Существует ли конструктор сайтов для программистов?

Лучший ответ: Программистам не нужны конструкторы сайтов.

Худший ответ: PHP Storm называется ;)
Вопрос: Что думаете на счет no-code платформ?

Лучший ответ: Не совсем про no-code, но выскажусь как архитектор и фанат serverless. 

Любой проект это реализованная идея
Идея хорошо работает либо когда она уникальна, либо когда ее качество неоспоримо
Если идею можно сделать из "говна, палок и пылесосы шлангов" - делаем, это абсолютно нормальный шаг
Большинству проектов чтобы выделиться приходится делать уникальную бизнес-логику, которую не купишь в сервисе
Можно выбирать компромисс в виде делегации части работы сторонним сервисам (Serverless концепция)


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

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

на правах рекламы, я создал платформу SMC, реализующую модульный подход. Само создание/редактирование приложение очень простое и происходит в графическом конструкторе, поэтому вполне можно называть её no-code.
Основные отличия - универсальность и динамичность: легко создавать приложения любого типа и сложности, а так же изменить существующие приложения, в том числе работающее.
Если не сложно посмотрите на неё. Буду признателен за отзыв.
Сайт: www.smcsystem.ru
Вопрос: Как ограничить действия в Windows?

Лучший ответ: Это называется политика ограниченного использования программ.
https://habr.com/ru/post/101971/
Плюс банальные права NTFS.
Политика разрешает запускать приложения расположенные в определенных каталогах Например в папке Windows или ProgrammFiles. При настроенной политике запустить приложение из другого места, например с рабочего стола не получится. А запись пользователю разрешена только в домашний каталог - это уже права файловой системы.

Худший ответ: Стандартными, конечно.
В домене просто создаём пользователя, настраиваем ему права (урезанные) через группы и последующих таких пользователей создаём копированием от первого.
Небольшой мануал: itmu.vsuet.ru/Posobija/AD/htm/2_pr.htm
Вопрос: В чем ошибка в коде js?

Лучший ответ: Сходу ошибка:
document.getElementsByClassName("option") // вернет коллекцию элементов а не один элемент

Худший ответ: Попробуйте так,  status innerText уже при сравнении
let status = document.getElementsByClassName('option');
console.log(status);
for (var i = 0; i < status.length; i++) {
  if ("Новый" == status[i].innerText){
    status[i].setAttribute('selected', '');
    console.log(status[i].innerText);
  }
}
Песочница
Вопрос: Способ пакетной обрезки изображения?

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

Худший ответ: IrfanView, режим Batch Conversion