pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Android как удалить логирование?

Лучший ответ: Используйте proguard/r8.
В файле proguard-rules.pro пропишите следующее:-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int println(...);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
    public static int e(...);
    public static int wtf(...);
}
Подробности тут в разделе Removing logging code

Худший ответ: if (BuildConfig.DEBUG) {} компилятор сам уберет этот код, проверки никакой не будет
Вопрос: Берут ли на Java стек людей с других языков?

Лучший ответ: Шансов - ноль, зиро, никаких (даже на джуна).

Худший ответ: Нужно устроиться в компанию, где пишут на PHP и Java. Устроиться хотя бы на PHP миддла. Потом постепенно подтягивать java, начинать брать таски и плавно перейти в рамках одной организации
Вопрос: Какая библиотека под Python наиболее оптимальна для распознавания непрерывной речи?

Лучший ответ: попробуйте https://github.com/alphacep/vosk-apiнедавно было в новостях
vosk для локального распознавания слитной речи, поддерживающая русский язык

Худший ответ: Слышал про попытки использовать вот такое решение: https://cloud.google.com/speech-to-text/
Для русского так же обязательно стоит попробовать решение от Яндекса, оно на данный момент лучшее в этом сегменте: https://cloud.yandex.ru/services/speechkit
На практике работает так себе и в проде обычно speech2text-модели настраивают на обнаружение конкретных ключевых слов, а не полное распознавание речи.
Вопрос: Как на этом сайте подгружаются стили?

Лучший ответ: Это не криворукий верстальщик. 
Это так показывают инструменты разработчика, когда у файла есть "хвостик" после знака вопроса. 
Это сделано для того, чтобы не было кеширования. Версия файла меняется - меняется хеш - у пользователя стили берутся не кеша.  Если версия не поменялась, то из кеша. 
На самом деле, к сайту подключен один файл style.css
Остальные "кусочки" показывает source map.

Худший ответ: Часть "?23" в style.css?23 нужна для сброса кэша. Например вы изменили css и вот после знака вопроса написали вместо 23 - 24. Тогда у пользователей кэш стилей сброситься и новые стили применяться.
Вопрос: Error CS1061 unity как исправить ошибку?

Лучший ответ: Компилятор тебе четко говорит, что у Image, нет свойства enable. Чтобы это проверить, идешь на офф сайт и ищешь класс Image. Находим инфу. Убеждаемся, что компилятор не соврал и изменяем на правильное свойство
Properties enabled

Худший ответ: Как я понял у тебя есть на сцене много Image в канвасе, и тебе нужно их включать и выключать. Если я прав, то сделай вот что: обьяви не public Image[] lives; а public GameObject[] lives; так как на сцене у тебя обьекты GameObject, а Image - это компонент обьекта. И еще используй не enabled, а lives[i].SetActive(true/false);
Вопрос: Как лучше поступить в моей ситуации?

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

развивайте все три независимо друг от друга.

Худший ответ: Доброе времени суток!
Ведите 3 паблика. Если одинаковая тематика, то можно и связать их. С паблика А приглашайте в паблик Б и В, с паблика Б - в А и В, с паблика В - А и Б. Если результата не будет, выбирайте паблика с высокой активностью и продвигайте его. Главное - присоушивайтесь к аудитории.
Вопрос: Проверка на полиграфе при устройстве на работу, это вообще нормально?

Лучший ответ: Нет, не нормально
Также свидетельствует об отвратительном уровне СБ и/или практиках
Почему:
- полиграф не надежен
- полиграф можно обойти
- анализ вывода осуществляется человеком
Что означает, что СБ не умеет работать, что в свою очередь означает, что всех собак повесят на случайного человека
Никакая сумма не оправдывает риски, которые стоят за таким поведением работодателя

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

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

Худший ответ: По моему скромному мнению на learn.javascript (далее ljs) не стоит учить js. 
Ljs отличный сервис, но не для новичков ИМХО.
Сразу же объясню почему:
Очень много информации, часть из которой не нужна новичку. Пока пройдешь всю книгу останется только 20-30 % в голове. Да и не вся информация лёгкая.
Я бы посоветовал найти хороший курс на YouTube или просто погуглить, если хочешь в текстовом виде. Лично я учил на сайте old.code.mu. Сейчас есть од того автора новый курс, наверное лучший, но не проверял code.mu. Там материалы бесплатны и чем круто что после каждого урока задачки. 
Присоеденюсь к клиенту выше - сейчас нет смысла покупать профессию, курс и ТД. Все есть в открытом доступе.
На счёт соракса - тип крут, но курс заумный для новичка, сухая выжимка из теории, инфы мало.
Вот когда выучишь js советую просмотреть соракса и перед сном читать Библию js разраба ljs
Вопрос: Класс wrapper в html зачем он нужен?

Лучший ответ: Вот так без стилей совершенно непонятно зачем. Откроойте css, посмотрте какие стили применяются к wrapper-у, и станет понятно. Может на body они не применяются в принципе, или на body одни, а на wrapper-е другие.

Вот на тостере, например, вместо wrapper-а layout. Не позволяет растягиваться контенту на больших мониторах.


Худший ответ: Бывает, что такой блок делают, чтобы задать overflow.
Вопрос: На что можно заменить CuteFTP?

Лучший ответ: Filezilla
А через фтп клиент никто файлы не редактирует) для этого есть ssh

Худший ответ: WinSCP лучшая программа.
А лучше поставить нормальную IDE и работать в ней
Вопрос: Хотим создать игру на Unity под Android?

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

Худший ответ: специально для этого создали GitHub
Вопрос: Как вычислить вора памяти в Ubuntu?

Лучший ответ: глоб * не разворачивает скрытые файлы (начинающиеся на .)
Попробуйте  kshnkvn@ubuntu-vm:~/Dropbox$ ls -lah

Худший ответ: А там у вас скрытых файлов нет?  Сделайте ls -lah и проверьте.
Вопрос: Есть ли смысл становиться тестировщиком если не лады с математикой?

Лучший ответ: вообще без разницы 

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

Лучший ответ: просто в командной строке написатьwhile true; do php -f /путь/скрипт.php; done
остановить - Ctrl-C

Худший ответ: я бы поставило сервер очередей и многопоточно решал эту задачу.
посмотрите связку gearman + supervisor
Вопрос: Поможете с задачкой на Python?

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

last = max(glob.glob('*.user')+[''])
new = (last and int(last.split('.')[0]) or 0) + 1

Худший ответ: Ну, не совсем, что-бы чистым циклом.

У вас есть папка. Изначально пустая. Ваш скрипт должен зайти в директорий, посмотреть, пустая она или нет.
Если директория пустая -  генерируем файл 001. и заканчиваем работу.
Если директория не пустая начинаем просматривать файлы последовательно -  001,002.... пока не натыкаемся на последний элемент в этой последовательности. Потом генерируем файл с номером на единицу больший, чем последний встретившийся номер файла. Заканчиваем работу.

Если в будущем у вас некоторая произвольная папка будет уничтожена, скрипт сохранит свою работоспособность.

P.S. Дописанный вами фрагмент вопроса с поочередными попытками открытия файлов -  самый неэффективный из всех, которые можно придумать.
Вопрос: С т.з. сложности алгоритма генератор списка аналогичен циклу? O(n)?

Лучший ответ: Первое эффективнее.
Синтаксический сахар под капотом подразумевает дичайшие перетурбации, зачастую неэффективные. Бывают хорошие оптимизаторы, но полагаться на них не стоит.
К тому же, во втором случае пробегаем три раза, O(3n).
Это вопрос для собеседования. Люблю такие вопросы задавать, чтобы понять, тянет ли кандидат хотя бы на джуниора или нет.
А дальше идут вопросы про классы, ООП, интерфейсы и прочее

Худший ответ: сложность обоих решений O(n), разница только в константе. Но в первом случае вы пробегаетесь по всему списку 1 раз, и сразу считаете все что нужно. во втором - вы это делаете 3 раза.  Ну и да - во втором случае вы еще и память выделяете.
Вопрос: Как пишутся низкоуровневые библиотеки?

Лучший ответ: snxwfall Вам нужно не про библиотеки языка читать, а про операционные системы, их архитектуру и историю создания. Да, что-то в какой-то момент нужно написать на асме, но до этого столько ещё архитектурных слоёв лежит - библиотеки-обёртки в userland, ядро, драйвера, различные библиотеки вроде OpenGL которые вызывают функции драйверов и т.д. Это всё про ОС, читайте об этом. Это огромные системы, создававшиеся десятки лет.
Тот же fstream просто реализуется под кокнретную платформу и компилятор разработчиками платформы и/или компилятора путём вызова API операционной системы.

Худший ответ: Не обязательно на ASM. Можно на C, главное как-нибудь дёргать системные вызовы (которые в зависимости от ОС отличаются, например, для Windows используется WinAPI).
Вопрос: Возможно ли сделать полноценный скрипт в фоне на чистом PHP?

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

Худший ответ: Если через FPM, то можно этой функцией отсоединить скрипт от сервера и продолжить выполнять его на фоне: https://www.php.net/manual/ru/function.fastcgi-fin...
Но при этом он будет занимать пул процессов, следует это иметь ввиду.
Вопрос: Максимальное количество дисков в RAID 1??

Лучший ответ: Хоть сколько.
Кол-во дисков ограничено максимально возможным на конкретном устройстве (сколько влезет).

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

Лучший ответ: Не стоит - так как вы видимо не понимаете, зачем вам это надо, раз задаете подобные вопросы.

Худший ответ: Установи, если заняться нечем. Мне например их DE не подходит. Не работает Xneur.
Да и шрифты в линуксе настроить еще ни разу не получалось. Как отличались они в браузере, так и отличаются.
Вопрос: Стоит ли брать МФУ KYOCERA ECOSYS M2030dn?

Лучший ответ: Kyocera M2030dn - это хорошая офисная модель.
Если с ней нормально обращались, то на неоригинальном тонере она должна без проблем отходить 75-80 тысяч листов. Количество отпечатков можно на тестовой странице увидеть (если не перепрошивали, конечно). После 75 тысяч потребуется обратиться в сервисный центр, чтобы они её почистили, почистили бункер отработки, и работать дальше.
Частые проблемы:
примерно после 100 тысяч отпечатков потребуется заменить валики захвата бумаги;
после 150 тысяч отпечатков, скорее всего, встанет вопрос о замене основного узла сервисным комплектом (половина стоимости нового устройства).
Оригинальный тонер, предположительно, должен увеличить срок жизни устройства, но он и стоить будет значительно  дороже.

Худший ответ: Имел дело с M2035dn, но этот примерно такой же.
Хороший аппарат, можно брать, если он в рабочем состоянии.
Правда он похоже уже снят с производства, могут быть проблемы с расходниками, проверьте есть ли они в продаже.
Если раньше не было киосеры, то в качестве расходников у них - не только картридж (который в киосере просто банка с тонером), но и фотовал, которого хватает примерно на 3-5 смен картриджа.
Вопрос: Как обеспечить безопасность проекта при использовании пакетов из Composer?

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

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

Лучший ответ: 1. не запрещено, пользуйтесь.

2. большинство провайдеров не отслеживают куда вы ломитесь, вдобавок в отличие от РФ у нас нет законов, обязывающих провайдеров хранить какие-либо данные активности пользователей. Существующие блокировки сделаны просто на магистральных операторах (типа блок яндекса и vk.com). При этом через впн ими можно пользоваться - запрещающего закона нет, он касается только провайдеров

3. В обычном случае нет.

Худший ответ: Разрешено ли пользоваться Торрентом в Украине?

а ведь молодцы немцы!

в цээвропу это еще не дошло, не парьтесь, даже США говорят о*уевают от пиратства
Вопрос: Почистил системный блок, поменял термопасту на процессоре, комп не работает. Что делать?

Лучший ответ: 1) Зайти в BIOS (F2 или Del при загрузке), там найти Hardware monitor. Смотреть температуры процессора.
2) Проверить все шлейфы, для надёжности можно вытащить-вставить каждый
3) Проверьте - подключен ли 4pin шлейф процессора дополнительный
4) Есть смысл разобрать блок питания и посмотреть на вздутие конденсаторов на входе и на выходе
5) Попробовать запускать компьютер голым - без видеокарты и планок оперативки(кроме одной), подключать оборудование постепенно.
6) Если загрузится - ставить AIDA64 или подобную программу и смотреть на температуры процессора, видеокатры и т.п.

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

Лучший ответ: Каким образом, допустим, 50-70 камер, разбросанных по всему городу, получают доступ к одному серверу видеорегистрации?Точно таким же образом, каким тысячи пользователей разбросанных по всей стране получают доступ к этому сайту. Протяженность тысячи километров.
Через интернет.
Удивительно да?

Худший ответ: Каким образом, допустим, 50-70 камер, разбросанных по всему городу, получают доступ к одному серверу видеорегистрации?
Если совсем кратко: ничего необычного - рутина на уровне "сделай видео на предприятии". 
Линии+ПО для обработки видеосигнала с кучей своих свистелок+серверы.
Вопрос: Выключаються 8 из 16 портов. От чего может быть?

Лучший ответ: Свитч порты POE ?  Если да проверить перегруз питания и не повреждены ли провода

Остальное выше написали

Худший ответ: в норме порты могут отключаться в случаях, предусмотренных поддерживаемыми коммутатором спецификациями/протоколами. это как правило:
- защита от dhcp/ip/mac spoofing;
- loopback detection;
- команды на административный down по протоколам управления (snmp/telnet/ssh/что-то ещё).
так что предлагаю первым делом убедиться, что для данных портов у вас отключены указанные фичи и нету петель в сети.
Вопрос: Магия int при делении на float?

Лучший ответ: Цифры странные берутся, когда в ячейке памяти хранится один тип, а printf ожидает увидеть другой, потому неправильно представляет его. Округлять или ещё как-нибудь преобразовывать типы за вас printf не будет, что ему скажут, то он и выведет.

Худший ответ: а затем в printf вывести через символ преобразования для целых чисел, то есть %d
Это не символ преобразования, ничего не преобразуется: вы сами сообщаете (обманываете)  printf о типе переданных данных.
Преобразование выполняется как-то так
printf("%d", (int)(b*a));
Вопрос: Как перенести OS на SSD 120gb минуя ошибки «Specified disk is too small»?

Лучший ответ: Move/Resize Partition. Уменьшите системный раздел.

Худший ответ: Смысл этих программ в том, что они по сути переносят весь системный раздел на диске С, а в нём у тебя наверняка лежит не только Windows, удали или перенеси на другой диск лишние файлы, и тем самым уменьши объём системы
Вопрос: Почему появляется белое пространство при назначении внешних отступов блоку?

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

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

Лучший ответ: Потому что Go - отличный язык программирования?

Худший ответ: Go хорош по синтаксису, очень приятно читать код (ИМХО). Очень быстрый. Скорость компиляции - молниеноснтная
Вопрос: Есть готовый сайт на HTML, CSS, JS, но только на моем ПК, что делать дальше?

Лучший ответ: У вас как я понял только свёрстанный макет сайта. Вы его конечно же можете загрузить себе на хостинг, но что вам именно нужно? Можете натянуть эту вёрстку на вордпресс, чтобы дальше наполнять свой сайт новостями или ещё чем-нибудь. Если же хотите разместить сайт в сети, как портфолио, то есть github pages. У вас странно поставлен вопрос.

Худший ответ: Заходите на сайт wp-kama или misha.blog - лучше по теме wp не найдете. А видео можно любое, где не раздражает автор.
Уточняющий вопрос - какова ваша конечная цель? Просто без этого сложно дать точную рекомендацию.
Вопрос: Какую среду разработки выбрать новичку? Есть ли с объяснениями элементов кода? Или подсказками?

Лучший ответ: Jetbrains
Потому что альтернатив нет.

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

Лучший ответ: Судя по строке
drwxr-xr-x 1 xenon xenon 2813952 Feb 11 20:49 .
в этом каталоге в какой-то момент было очень много (тысячи) файлов.

В ext2/3/4 каталог это такой «специальный файл» в котором записаны имена (и ещё что-то) содержащихся в нём файлов. И если их много, то и сам каталог будет большим. Но при этом механизма уменьшения размера каталога не предусмотрено.
Стандартный вариант, скопировать все файлы из него в новый каталог, удалить этот и переместить новый на его место.

Худший ответ: возможно из каталога был удалён файл, который  продолжает держать приложение?
попробуй 
lsof  | grep delete

найденный процесс - прибить/перезапустить
Вопрос: Что не так с дизайном сайта?

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

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

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

Худший ответ: У тебя есть сообщение об ошибке. Сообщение об ошибке можно гуглить. Базе некогда ждать пока твой скрипт проспится. 
После этого убрать свои бессмысленные sleep(15); и  вместо этого делать то что тебе нужно по-человечески.
Вопрос: Курсы для программистов с трудоустройством?

Лучший ответ: Доброго дня, я хочу найти работу junior developer в приоритете на Python, однако мои поиски не венчаются успехом.
Удивительно.Курсы для программистов с трудоустройством?
Таких нет. Ни одного.

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

Лучший ответ: Кабель надо включать в порт LAN на первом и втором роутере. На втором роутере порт WAN не подключен никуда.
На втором нужно обязательно отключить DHCP.
WiFI настроить на обоих роутерах с одинаковым именем и паролем. Каналы поставить разные.
Вот и все.

Худший ответ: АртемЪ - ответ от этого пользователя верен

Подключаем роутеры Lan > Lan
Отключаем DHCP на втором ОБЯЗАТЕЛЬНО!!!! Иначе Вы получаете 2 dhcp сервера и как следствие проблему...
DHCP всегда ОДИН должен быть для 1 подсети.

отключите DHCP на втором и перезагрузите оба роутера через питание
Вопрос: Какие задачи решают на Rust, а какие на Golang?

Лучший ответ: Какие задачи решают на Rustлюбые. Rust - язык общего назначения, применимый к большинству возможных задач. Rust достаточно высокоуровневый для написания на нем прикладного ПО и компилируется в достаточно эффективный машинный код, для применения в ядрах ОС, драйверах или embedded разработке. Так же Rust на сегодня имеет самый маленький размер при компиляции в wasm, что критично для использования в web. Я честно не знаю такой сферы, к которой бы не подошел Rust.
Единственной проблемой в применимости Rust я вижу недостаточную его распиаренность в РФ, что часто бывает самым важным критерием для "манагеров" и прочих людей принимающих решения о используемом стеке.
а какие на GolangGolang тоже язык общего назначения, но имеющий ряд ограничений:
- Крайне тяжелый рантайм не дает возможность использовать его в wasm, embedded или компонентах ядра.
- Необходимость в сборке мусора опять таки ограничивает разработку для embedded или компонентов ядра.
- Отказ от llvm в качестве бэкенда компилятора ограничивает число целевых платформ.
Можно один заменить другим?Rust спокойно заменяет Golang в любой возможной на последнем задаче, наоборот же иногда имеем ряд ограничений.

Вместо P.S.:
Golang скорее всего окажется более быстрым для прототипирования и быстрого старта. Однако отсутствие полиморфизма в любом виде (утиная типизация не в счет) и ограниченность одной парадигмой структурного программирования делает этот язык крайне дорогим в поддержке. Так же этому (и быстрому прототипированию и дорогой поддержке кода) способствует лютая ненависть создателей языка к принципу DRY.
Rust имеет такую редкую сегодня строгую типизацию, одним из нюансов которой являются концепции владения и заимствования (которые позволяют делать автоматическое управление памятью в compile time), что порождает с одной стороны высокий порог входа в технологию (что сглаживается человекопонятным выводом компилятора, если входящие умеют читать, что еще более редко встречается сегодня, чем строгая типизация), но так же удешевляет поддержку продукта длительное время. Так же надо понимать, что Rust не спасет от кривых рученок быдлокодеров (разве что они не смогут его освоить), так как при большом желании можно сделать и утечки памяти и дедлоки и гонки данных (хотя в Golang это все сделать на порядок проще).
Ну и надо не забывать, что много где присутствует hype-driven-development и Golang распиарен, а Rust нет.

Худший ответ: Rust - это реинкарнация C++ в нынешнее время.

What is Rust used for? It is possible to develop device drivers, embedded systems, operating systems, games, web applications, and so much more. The language frequently supports projects aimed at high-security and high-concurrency.

Go - это реинкарнация Oberon в нынешнее время.
https://hackernoon.com/should-i-go-the-pros-and-co...
Вопрос: Какой должен быть уровень JS для перехода к JS фреймворкам?

Лучший ответ: Больше рабочих проектов, меньше задачек. Если проектов нет – придумайте :)

Худший ответ: es6+ (стрелочные функции, деструктуризация, классы)
xhr, axios
свободное владение влет методами массивов и объектов, преобразование данных
typescript
Вопрос: Почему возникает ошибка «No module named 'articles.apps.ArticlesConfigdjango'; 'articles.apps' is not a package»?

Лучший ответ: И еще не забывайте проверять запятые)))

Худший ответ: settings.py проверь, что добавил в список app свою app