pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как развиваться python-программисту от начального уровня до junior и дальше?

Лучший ответ: я вижу это так:
1) сначала книги по базовым основам, их много, писать простые консольные скрипты, решать задачки на сайтах типа checkio и codewars
2)изучить джангу, или можно сначала фласк, а потом джангу, попробовать сделать простейшее crud приложение с sqlite3 базой.
3)потом идешь на кэгл, вкуриваешь основы машинного обучения, ищешь какое-нибудь интересное прошедшее соревнование, заходишь в кернэлы и дискуссии, смотришь решения, которые дают хороший результат (часто победители выкладывают свои решения). 
4)Берешь решение, обучаешь свою модель и запиливаешь ее на свой джанго-сайт, типа приложение "предсказываем то-то то-то"
5)идешь устраиваться джуном, всем показываешь свое приложение.

Худший ответ: Читать книги, практиковаться
Вопрос: Обновление CPU. Что рекомендуете?

Лучший ответ: Intel, nvidia - только их!
Дальше - по бюджету.

Худший ответ: Ryzen 5 2600 vs Intel i5 8400 в играх: https://www.youtube.com/watch?v=nS-t2Z0Wc3I
Если в будущем хотите новый процессор без смены материнки - только AMD, под Intel материнку менять придётся вместе с процом.
Имхо, в условиях ограниченного бюджета, и с потенциалом на апгрейд - надо брать Ryzen 5 1600 AF. Это обновленные райзены, по сути те же 2600, только чуть менее производительные. Для всех современных игр его хватит.
Но!
Под райзен придётся память более высокочастотную взять или хотя бы разогнать эту хоть немного. 2133 мгц - это мало. Райзены более требовательны к памяти, чем Интелы.
Вопрос: Проверять ли массив для foreach?

Лучший ответ: $this->orderRepository->getList();
Если getList вернул null вместо пустого итерируемого объекта, то это имхо неправильный дизайн самого getList

Худший ответ: Нет. Foreach выполняется только тогда, когда в массиве есть данные.
Вопрос: Macbook air 2019 vs Macbook pro 2019 что выбрать для программирования на ios?

Лучший ответ: Конечно же PRO, смысла нет даже обсуждать. Хотяб самую дешевую 13ку с i5 1.4 но при этом если есть возможность - обязательно увеличить оперативки до 16 Гб.

Худший ответ: Если финансы позволяют, то конечно pro, тут и думать нечего.
Вопрос: Django Rest React, как написать вход для пользователей?

Лучший ответ: Иди учить.

Худший ответ: Не майся хернёй, с начала изучи свои фронтенды React/Vue пойми как они работают, потом такие глупые вопросы отпадут! А в django есть https://docs.djangoproject.com/en/2.0/topics/auth/... Чтобы самому написать логику авторизации. И ПЕРЕСТАНЬТЕ БЛИАТЬ ДУМАТЬ ЧТО МЫ НАПИШЕМ ЗА ВАС КОД! МЫ НЕ ВАША ЛИЧНАЯ АРМИЯ!!!!
Вопрос: Что необходимо подготовить для апгрейда SSD диска с Windows 10?

Лучший ответ: 1. Подобрать габариты основываясь на модели текущего диска.
2. Да, вы можете подключить. Существует переходник m2=usb 3.0, так же вы сможете сохранить текущую копию на внешний диск, загрузиться с флешки ( есть множество программ для этого, тот же акронис) затем вставить новый SSD и восстановить из внешнего жесткого диска. 
3. Да, вы можете заменить самостоятельно. Вопрос гарантии зависит уже от сложности разборки( если у вас есть возможность заменить диск не разбирая полностью. а просто снять крышку. Вы не повредите никакие пломбы) Так же зависит от политики компании которая выпустила ноутбук.

Худший ответ: SSD дискаДобавить диск (без переустановки Windows) и в "Параметры" изменить "Память устройства", "Изменить место сохранения...". Это если пользоваться "плиткой".
Так же можно переопределить переменные окружения, переместить стандартные папки, использовать символьные ссылки для папок.
Вопрос: Vue + Bitrix + Nuxt возможно ли?

Лучший ответ: Просто была задача сделать сайт, посмотрев на макет я понял, что было бы очень круто сделать его SPA, на что был получен ответ, Битрикс + хорошая SEO оптимизация.
Т.е. SPA - это ваша личная инициатива? 
Добро пожаловать в клуб любителей стрелять себе в ногу из базуки.Битрикс + хорошая SEO оптимизация - вот это существует давно и отрабатывает железобетонно, не портьте бочку меда модно-стильно-молодежными идеями...

Худший ответ: Возможно. Безумно рад что теперь front и back отдельно друг от друга и не надо заниматься такими вещами как интеграция вёрстки - разработал метод, добавил в документацию, дальше уже фронт пусть подключает его и выводит нужные данные.
Вопрос: Хостинг для Django 2 сайта с поддержкой sqlite3?

Лучший ответ: 1. SQLite плохой вариан для сайта в продакшн, даже если нагрузка небольшая. PostgreSQL наше всё, или можете взять MySQL.
2. Если нет необходимости держать сервер в РФ, то я порекомендую Hetzner Cloud (отличное соотношение цена/качество), цена начинается от 2,99 Евро (в рублях примерно 230 будет, это если с карты Сбера платить). Если пользовались менее месяца, оплата будет считаться по часам (от 0,005 Евро в час)1 vCPU2 Gb RAM20 Gb SSD20 Tb traffic
Такого хостинга хватит на несколько сайтов с небольшой нагрузкой, 
и еще десяток ботов в придачу.
Вменяемая техподдержка, удобная веб-морда, да и в целом проблем не замечено.
Сервера есть в Германии и в Финляндии (из Питера пинг отличный)Скриншот

Худший ответ: Есть djino хост, который занимается django вплотную.
Вопрос: Как отрисовать html код из строки в WPF-приложении?

Лучший ответ: Верно ли я вас понял: программа запрашивает некую страницу (запрос), результаты возвращаются в виде HTML строки. Ваша задача - красиво отобразить элементы в WPF приложении.
Варианты:Отобразить содержимое строки в WebBrowser:var browser = new System.Windows.Controls.WebBrowser();
browser.NavigateToString(string strHtml);Использовать конвертер во FLOWDOCUMENT, подробно тут: blogs.spencen.com/?p=672Можно также воспользоваться любым HTML парсером, например Html Agility Pack и вручную пройтись по элементам кода, попутно создавая элементы интерфейса:var doc = new HtmlDocument();
doc.LoadHtml(html);

Худший ответ: Если правильно понял суть вопроса, то: HtmlRenderer.WPF
Вопрос: Как отфильтровать данные за определенный период в Spark?

Лучший ответ: можно просто попытаться как вы пишете отфильтровать, для этого в начале получить определенную структуру и тип данных:источникДанных
  .мап(созданиеСтруктуры)
  .фильтр(текущаяЗапись => СписокТребуемыхНомеров.содержит(текущаяЗапись.телефон) 
    && текущаяЗапись.дата<>требуемыйИнтервал)
так будет работать, но очень долго, медленно и сожрет кучу ресурсов на одной машине - это не то ради чего спарк используют, спарк - это движек для распределенных вычислений. А чтоб запустить распределенные вычисления, нужно в начале создать пару "ключ"->"значение" (где ключ номер телефона, а значение все остальные данные), эти пары распределятся по узлам, где будут параллельно обрабатываться, а потом результат паралельной обработки агрегировать в один общий результат, и для этого не фильтр использовать а reduceByKey с aggregate, для паралельного сбора ключей и значений для этих ключей.

Худший ответ: Дату в формате ISO можно сравнивать как строки. Список телефонов оформить как множество.
Будет что-то типа
val arr = numbers.split(",").toSet
spark.read.parquet("fs://path/file.parquet").filter(t => t("CREATE_DATE") < dateTo && t("CREATE_DATE") > dateFrom && arr(t("MOBILE_KEY")))
Точно не знаю как к полям записи в SPARC обращаться, может быть надо будет немного переделать.
Вопрос: Как обновлять каждую секунду значение в MySQL посредством PHP?

Лучший ответ: Как мне кажется из каменного века. Создать отдельное поле, в которое я сохраняю точное время инициации действия. В тот момент когда мне надо показать пользователю поле "account" я показываю account + ( (дата инициации дейтсивя обновления поля accoutn) - (дата отображения поля) )*(нужный параметр добавления)"Долбить" базу каждую секунду, без особой на то нужды, когда можно этого не делать - плохая идея. Данное решение описывает более рациональный подход, если он конечно возможен.Писать сторонний микросервис, который будет отправлять каждую секунду запросы в БД и увеличивать значение. Не знаю, что Вы подразумеваете под "сторонним микросервисом" и как это в конечном итоге должно работать (логически), например при нагрузке, запросы могут вставать в очередь и данные могут терять свою актуальность в этом (вашем) случае...  Можете попробовать несколько вариантов:
1. Попробовать использовать "родные" события MySQL
2. Создать примитивный скрипт PHP, типа такого и запустить его (на бесконечное выполнение):<?php
while(true) {
mysql_query("..."); //Условно
sleep(1);
} но, он будет выполняться не 1 раз в секунду, а с паузой в 1 секунду
3. Загадить крон заданиями, в кол-ве около 60 штук (т.к. крон задания запускаются минимум 1 раз в минуту), как это примерно должно выглядеть описано здесь, что в целом тоже не очень надёжно, т.к. высока вероятность, что рано или поздно, запросы могут отвалиться, приводя тем самым самым данные в неактуальное состояние.

Худший ответ: откройте для себя crontab =)
Вопрос: Как подключиться к VPS на UBUNTU 18.04 из под Windows 10?

Лучший ответ: Никаких "рабочих столов" на бубунте на VPS быть не должно. openssh там уже есть и даже наверняка запущен, на винде хорошо работает XShell (бесплатно для домашнего или некоммерческого применения), есть бесплатный putty.

Худший ответ: Используйте VNC.
Вопрос: Как сделать файловый сервер через роутер с доступом из «внешки»?

Лучший ответ: перепрошиваешь в openwrt и далее работаешь как в обычной серверной линухе.
скорости зависят от ресурсов, а их в роутере крайне мало, для ftp ssh и т.д. файлохранилища, без граф.интерфейсов, хватит за глаза.

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

Лучший ответ: в модх есть масса плагинов. Используйте что нибудь вроде самой основной классики wayfinder. Или pdomenu, или любого другого )
У этих плагинов есть опции, позволяющие конфигурировать любое состояние навигации. Указывать активный элемент, прятать текущий раздел или корень и проч.
Можно подключить и написать классы поверх стилей из коробки, можно внедрить свои шаблоны на все случаи жизни.
i--gu.ru/wayfinder к примеру. Либо читать на сайте с документацией по modx

Худший ответ: Добрый день. В вашем случае Если у вас MODX Revo, то установите PdoTools и замените ваш HTML вот таким выводом:[[pdoMenu?&firstClass=``&lastClass=`` &parents=`0` &level=`1`]]
вот официальная документация: https://docs.modx.pro/komponentyi/pdotools/snippet...
Вот пример реализации сложного меню при помощи pdoMenu (PdoTools): https://web-revenue.ru/modx-revo/mnogourovnevoe-me...
Вопрос: Почему browsersync не обновляет страницу при верстке?

Лучший ответ: Переустановите Node.JS (при переустановке убедитесь что галочка "npm" стоит)
Затем, откройте cmd или powershell от имени администратора и напишите npm install -g browser-sync
Если вы работаете из Windows, то создайте txt файл с этим содержанием:browser-sync start --server --directory --files="**/*"
переименуйте его расширение на *.bat
Поместите этот файл в папку, в которой лежат нужные вам файлы для обновления, и кликните 2 раза по нему.
Если вы работаете на потоке, то вам потребуется плагин для Gulp и написать таску

Худший ответ: browser-sync start --server 'директория' --files 'директория'
Вопрос: Как бы вы улучшили данную модель ноутбука «Ноутбук HP 15-rb028ur, 15.6»?

Лучший ответ: Заменил бы его на мак бук, к примеру Air.
А по теме - сменить диск на ССД, увеличить оперативку(если это возможно)

Но большого прироста это не даст.

В чем состоит задача? для чего надо улучшать ноут? какие программы?

Худший ответ: Заменил бы его на, ну скажем, Asus Predator.
Вопрос: Многосайтовость. Где папка local?

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

Худший ответ: Папку кладите туда, где лежит bitrix и upload. А в соседние сайты симлинки.
Вопрос: Как избежать глубокой вложенности в CSS?

Лучший ответ: Зачем включать в селектор все элементы вложенности? Конструкция, как в вашем примере, может быть нужна только если ваш class4 может содержаться в десятке разных структур дерева и, главное, иметь разное оформление. БЭМ, который многие считают чуть ли не панацеей - техника, которая была придумана для разметки, генерируемой автоматически. Если верстка делается вручную, у вас есть возможность подумать головой и спланировать разметку.

Худший ответ: Ответ очень прост — не используйте глубокую вложенность.
Кто вас заставляет писать .class1 .class2 .class3 {}, если можно просто написать .class3 {}
Вопрос: Синтаксическая ошибка в Playbook Ansible. Что не так?

Лучший ответ: become: yes
Пробела у вас не хватает перед yes

Худший ответ: Скорее всего из-за отступов.

---
- hosts: localhost
  connection: local
  gather_facts: yes
  vars_files: 
   - 'vars/main.yml' 

  tasks: 

    - name: set timezone to UTC
      timezone:
        name: UTC
Вопрос: Как подобрать STM32?

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

Худший ответ: объем програмки зависит только от используемого ПО.
будешь писать на ассемблере/С получишь маленький объем.
будешь писать на высомудреных языках - потеряешь кучу памяти на дополнительных обвесах, проверках, функциональности и прочия.
ну и плюс размер библиотек, размер интерпертаров в случае всяких node.js micropython
решать тебе
Вопрос: Как добавить в микротике статический маршрут для списка IP адресов?

Лучший ответ: /ip route add dst-address=x.x.x/x gateway=y.y.y.y
или в IP - Route на + добавляете
x.x.x.x/x - адрес/сеть, y.y.y.y - шлюз через который ходить

Худший ответ: Уточните вопрос, вам надо просто добавить статический маршрут или настроить pbr (police base routing)?
в примере выше x.x.x.x/x это Dst.Address (адрес назначения), y.y.y.y - gateway (шлюз) и без дополнительных условий оно применяется для всех источников, которые ломятся в x.x.x.x/x
Вопрос: Стоит ли делать резервное копирование в облако?

Лучший ответ: Стоит ли делать резервное копирование в облако?Да, это хорошее дополнение к локальному хранилищу бэкапов.Руководство предлагает делать резервное копирование в облако, для того что бы не покупать сервак для бэкапов.Сначала покупают сервак для бэкапов, настраивают резервное копирование, после чего дублируют в облако при желании.Почитав интернаты, интересные сервисы предлагает акронис. Что думаете? Дорого, и доверия особого не вызывает. Amazon S3 Glacier явно получше будет.
P.S.
По моему мнению Glacier идеальное хранилище для бэкапов - достаточно надежно, и самые низкие цены на хранение. Он несколько сложноват в освоении, и  цена получения данных оттуда достаточно высока - но так это холодные данные, которые в идеале и не должны оттуда вытаскиваться. Только в крайнем случае. А локальный бэкап это обязательно - особенно если у вас приличные объемы данных. Вы просто оцените ширину своих каналов, и скорость отдачи от облака и подумайте сколько времени вы будете вытаскивать данные в случае нештатной ситуации, когда нужно как можно быстрее возобновить работу критичных для организации  сервисов.

Худший ответ: Интересные варианты предлагают AWS и Azure. Остальное от лукавого)
И да, стоит делать в облако дампы, но не только по тому чтобы не покупать сервак
Вопрос: Как правильно работать с backend на PHP используя Vue?

Лучший ответ: Да, всё так как вы описали.

Насчёт OAuth конечно я бы не сказал, что прям это супер обязательно, иногда можно прибегнуть просто к jwt токену. OAuth по мимо безопастности даёт ещё много преимуществ, например как единый сервер для авторизации пользователей для множества проектов. Как по сути всякие соц. сети дают возможность. Если у вас простой проект и в нём нет каких либо очень важных данных, то можно и без OAuth обойтись. Это просто моё мнение))

Худший ответ: Добавлю что если Вам не нужна авторизация через соц. сети не используйте токены (ни в каком виде OAuth jwt и т.п.)  Пользуйтесь сессиями, да-да Обычными встроенными сессиями, единственная сложность в Laravel это что нужно получить csrf (для этого нужно внести один путь в исключения мидлвари) , если нет авторизации то и этой проблемы нет.  

Если  хочется по модному то есть Laravel Airlock, где все сделано и документация написана, хотя лично я считаю что если сессии подходят (spa на том же домене что и бэк) то в пакете нет необходимости.

Любые токены более, либо также опасны как сессии, а также более сложны в работе. При выборе токенов надо точно понимать зачем тебе это.
Вопрос: Разные IP адреса на одном сервере. Легко ли определить что сайты стоят на одном сервере?

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

Худший ответ: По косвенным признакам, если только - одинаковый интернет-провайдер, одинаковые версии ПО. Снаружи нет разницы, на одном сервере сайты или на двух соседних, или вообще на виртуалках в пределах одного кластера - выглядеть это будет аналогично.
Всё это справедливо, разумеется, если вы настроите веб-сервер на прослушивание конкретных адресов, а не всех сразу - иначе понять можно, просто последовательно опросив их с соответствующими заголовками Host.
Вопрос: Как раздать звук с Windows на Linux?

Лучший ответ: Воткни провод "оконеченный" с обеих сторон миниджеками 3,5, в компе - в выход, в ноуте - во вход.

Худший ответ: На винде - транслятор через DLNA.
На линухе - любой DLNA клиент.
В качестве первого могу посоветовать Stream what you hear (так и гуглить)
Вопрос: Что быстрее освоить новичку: javascript + node.js или javascript + php?

Лучший ответ: Если хотите делать полноценные сайты, PHP нужно знать обязательно

Худший ответ: Знакомый начинал с PHP/Python. В итоге пишет Api на Go и фронт на Vuejs. Для типичных проектов вроде хватает.
Вопрос: Как реализовать такую расстановку блоков на FlexBox CSS?

Лучший ответ: С помощью чего и как можно реализовать вот такую расстановку блоков?
На ум сразу приходит masonry.

Худший ответ: На js - masonry.
На flexbox - вижу решение: flex-flow: column wrap и задать высоту контейнера
Вопрос: Как перевернуть картинку при наведении?

Лучший ответ: htmlbook.ru/faq/kak-otrazit-izobrazhenie
UPD: в вашем случае вы либо фон заменяете при наведении, либо через :before, :after делаете круг и знак вопроса соответственно и при наведении меняете только фон круга и все.

Худший ответ: htmlbook.ru/faq/kak-otrazit-izobrazhenie
UPD: в вашем случае вы либо фон заменяете при наведении, либо через :before, :after делаете круг и знак вопроса соответственно и при наведении меняете только фон круга и все.
Вопрос: Стоит ли использовать October CMS в масштабируемых проектах?

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

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

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

Худший ответ: Ну смотря в какой сфере. То что низкий порог вхождения этоо дааа ;D..
"Разумная" школота типо как я на базовом уровне освоил html/css/js и вперед конкурировать на фрилансе за копеечку с каким-то 24-25 разработчиком, работая за еду и опыт как доблестные крестьянин. 
А еще если освоить ВП и пилить шаблончики вообще закачаешься, при правильно письме и подходе к заказчику школьник поставит плюсом свой ранний захват программированием и умело воспользуется шансом на фрилансе.
Как по мне все норм xD
p.s я так уже взял проджектов штук 10 ))0))
Вопрос: Как технически реализован быстрый чат VK?

Лучший ответ: Я не в курсе как это у них реализовано, но думаю что примерно так:
1. Сам сайт - это SPA.
2. Плавающее окно сделано через простой html, css (не считая самого функционала)
3. При изменения страницы - состояние окна не меняется, т.е. отображается на том же месте, где и было ранее.
PS: Да, знаю, ответ расплывчатый, если его можно вообще считать ответом. Но возможно, вы сможете додумать что-то лучше и реализовать это.

Худший ответ: Сделано это с помощью JS и сокетов. Это отвечает за отправку и получение сообщений. 
Плавающее окно это просто css+html.
Сохранение происходите скорее всего в сессии, в ней хранятся последние действия.
Вопрос: Медленное шифрование AES256, как ускорить?

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

Худший ответ: Ну если результат шифрования расшифровывается, и совпадает с зашифрованными другими программами данными, то всё правильно.
Проблема заключается в том, что часто реализованные в лоб алгоритмы выполняют много повторяющейся работы, которую можно оптимизировать. Как минимум, в процессорах 8-байтные регистры, а большинство операций в алгоритме - однобайтовые.
Для оптимизации можно и нужно использовать профайлер, который покажет узкие места, которые можно попробовать оптимизировать. 
При компиляции нужно указать параметры для наибольшего ускорения.
Для реализации можно использовать специальные инструкции процессора AES-NI, которые и используются в truecrypt.
Вопрос: Yii2 как убрать дублирование записей в $dataProvider при joinWith()?

Лучший ответ: Чтобы исключить дублирование, надо сгруппировать по идентификаторам профилей
$query->groupBy('id');

Худший ответ: Вы в самом деле groupBy ?distinct
https://www.yiiframework.com/doc/api/2.0/yii-db-qu...
Вопрос: В какой бесплатной програме можно создать резюме в формате PDF?

Лучший ответ: docs.google.com и их готовые шаблоны Документов. 

Файл — Скачать — Документ PDF

скрин галереи шаблонов





Худший ответ: Блокнот, и открыв страницу в браузере, сохранить эту страницу как PDF.