pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Что за заметки на хабре?

Лучший ответ: Хабраюзер может оставить заметку в профиле другого хабраюзера, типа «этот чел разбирается в Ruby», все эти заметки теперь собираются в мойНик->Мое->Заметки.
Хабраюзер может видеть только свои собственные заметки.

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

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

Худший ответ: это лучше у банковских работников спросить, наверное их тут не будет.
Вопрос: Как исправить ошибку «recv() failed (104: Connection reset by peer) 502» в php-fpm / nginx?

Лучший ответ: Siege разорвал соединение, пока nginx получал данные от php-fpm или что там у тебя в /etc/nginx/conf.d/*.conf;
Начни с тестов без php, сделай каталог с простым index.html и натрави туда. Если ошибки остались, дело в кол-во обработчиков: 4 процесса по 768 медленнее, чем 1 процесс с 3072 сокетами на современном железе. Подними worker_connections до 2048 хотя бы.
Далее с backlog
Через sysctl net.core.somaxconn узнай значение backlog, если оно меньше параметра worker_connections то в sysctl.conf увеличивай до значения =  worker_connections
Такое же значение укажи в fpm listen.backlog

Худший ответ: Проблема шире чем кажется:
Надо понимать, что это означает - отвалился php
отвалиться он может по нескольким причинам:
1) лимиты в самом php.ini - первое из них время выполнения php скрипта
2) лимиты удержания сокета (конекта) настройки php-fpm
3) лимиты ожидания ответа от php-fpm со стороны nginx
4) все процессы заняты (умерли)
И вот когда все таймауты правильно настроенны и вас нет ооооочень долго выполняющихся скриптов - тогда все чики пуки.
Тюнить надо одновременно все эти 4 составляющие, понимаю взаимодействие.
Вопрос: Каким образом организовывали код до применения архитектуры MVC при веб разработке?

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

Худший ответ: В PHP до версии 5 не было ООП, а практически все шаблоны проекирования предполагают использование объектов. Выкручивались кто как мог. Получалось по-разному. В основном кака.
Вопрос: Какой движок или framework лучший для создания сложных онлайн-анкет?

Лучший ответ: Зависит от религиозных взглядов.
Я бы все же выбрал Yii

Худший ответ: Что есть «сложная онлайн-анкета»? 
Если предъявляются высокие требования безопасности, то лучше начать с поиска наиболее безопасных в области хранения и передачи данных, а потом уже искать фреймворки под эти решения.

Но, что-то мне подсказывает, быстрее будет создать свой фреймворк или решение.
Вопрос: Идентификация elf?

Лучший ответ: для Linux используется такой-же самый метод только без указания записи в PE Security Directory www.sco.com/developers/gabi/1998-04-29/ch4.eheader.html — подписываете файл и добавляете подпись в виде оверлея, с указанием ссылки в виде последней expandable секции данных (НО не кода)

Худший ответ: man elf говорит, что ELF header такой информации не содержит. (См список полей заголовка).
Вопрос: Как подогнать результат имея список цифр и итоговую сумму?

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

Худший ответ: А в этом примере не будет лучше 1*33+2*1+7*1+9*1=51? Задействованы все цифры, причём в максимально возможном количестве.
Вопрос: Основы программирования

Лучший ответ: Посмотрите в сторону C#. Небольшой прикладной софт для себя писать получается очень быстро. Вкупе идёт лучшая IDE и тонны документации с примерами.

Худший ответ: Почему-то никто не посоветовал JavaScript. Даже странно как-то.
Во-первых, чтобы на нем программировать НИЧЕГО не нужно на свой комп устанавливать! Все уже и так есть. К стати в Windows знания JavaScript очень даже пригодятся для администрирования на JScript.
Вопрос: С чего начать — Phyton или C ?

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

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

Лучший ответ: background-size: cover;
навешивать на body/html либо на растянутый на всю высоту контейнер
текст на фоне лучше отдельной картинкой с прозрачным фоном сделать, чтобы не обрезался

Худший ответ: ну вот да, именно вот с этой частью и проблемы, т.к. если задаю ей background: cover,  то блок растягивается и выглядит вообще не о чем...
Вопрос: Зачем на сайтах при входе через соцсети просят email/пароль ?

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

Худший ответ: К тому же, многие сайты хотят иметь свою пользовательскую базу, и используют соц сети именно для быстрой регистрации (с готовым аватаром, именем и т.д.), а слово "войти" — как замануху.
Вопрос: Как решить проблему с репликой на DC (windows2012r2)...NETLOGON и SYSVOL (нет шары)?

Лучший ответ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Изменяем значение параметра SysvolReady на "1"
Перезагружаемся
Попробуйте и обязательно напишите результат.

Худший ответ: Репликация не работает между контроллерами. Проводите исследование причин этого.
Вопрос: А есть среди вас психологи?

Лучший ответ: Может перестать делать говно?

Худший ответ: 1. Выспаться.
2. Занятся чем-то, чего вы совсем не умеете. Жонглировать, рисовать, на дудке играть, скороговорки говорить и т.п. Тут важно, чтобы дело не имело для вас какой-то повышенной значимости. Если давно и сильно хотели научится играть на гитаре или кататься на коньках — не пробуйте. Можете опять скатится в то, что не получается нифига. И хорошо если дело само по себе не будет избыточно сложным. Надо его позиционировать как отдых / развлечение и заниматься столько, сколько вам позволит свободное время (но без фанатизма).
Вопрос: Как подключить symfony2 в существующий проект?

Лучший ответ: 1) делаем адаптер PSR-7 (или HttpKernel) к вашему движку
2) делаем приложеньку на симфони
3) ставим мидлвэр который будет разруливать на какое приложение какие запросы кидать. Это можно разруливать и через nginx но как-то не круто.
4) когда начинаем пилить функционал на симфони и нужно что-то реюзать из старой кодобазы, стараемся отделить то что мы хотим заюзать от старой инфраструктуры (можно скажем сервис-декоратор запилить для старого движка) и регистрируем его в DI
5) постепенно переносим код, модель можно оставить старую если это возможно. 
По сути основная сложность отделить модель от инфраструктуры движка и почистить сервисный слой.

Худший ответ: Symfony - это фреймворк. Одна из особенностей фреймоврка - он вызывает пользовательский код, а не наоборот.
Так что если нужно сделать проект на symfony - Вам нужно полностью переделать его на симфони (сделать так, чтобы симфони вызывал ваш код).
Или есть вариант использовать отдельные компоненты симфони, используя их как вам удобно.
Вопрос: XML to XML парсинг и конвертация. Как переделать структру?

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

Худший ответ: хотя, не очень уж это и геморно)
Вопрос: Безоопасно ли заменить предохранитель 0,7A 5KV на 0,65A 5KV?

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

Худший ответ: Небезопасно. Не всякая электроника кошерно среагирует на внезапное пропадание питания, тем более при работе на полную мощность. На повышение по вышеописанным причинам тоже нельзя. Таки рекомендуется ставить номинал в номинал.
Вопрос: Зачем в gulp(grunt) разделять сборки на public и build?

Лучший ответ: Есть различные идеологии сборки проектов. Будь то папки dev, dist, public, production или еще какие либо. Но в основном отличие этих сборок следующее: в приведенном примере, предположительно, public — сборка проекта для отладки, а build — для продакшна, где исходные файлы минифицирются (например,  JavaScript), и при этом процесс отладки сильно усложняется, когда вместо привычного Вам пойнтера на баг выдаётся пойнтер на неизвестную минифицированную точку кода.

Худший ответ: В public попадают твои временные файлы при разработке проекта.  Вот у меня в шаблоне jade файлы рендерятся в html в папку .tmp, а когда делаю gulp build эта папка стоит в gitignore. Как-то так.
Вопрос: Питание USB на нетбуке в спящем режиме?

Лучший ответ: Технология является веткой Powered_USB, разработанной IBM, соответственно и патент за ними.
То самое расширение позволяющее давать питание на usb хаб в выключенном ноутбуке называется Always-On USB. Обычно один из хабов помечается, как Always-On USB hub, к примеру желтым или красным цветом, также требуется активация через BIOS.
Не смотря на то, что патент за IBM, они продают права на использование другим брендам, к примеру ASUS.

Официальный сайт Powered USB.

Худший ответ: Не уверен что данная фича будет работать в линуксе, как всегда на счет спящих режимов и энергосбережения линукс в догоняющих.
А в целом есть аккумуляторы большей емкости для дезайра, + 200ма/ч без выпирания, и где то 2x емкости выпирающий акум из корпуса.
Вопрос: Что происходит с файловой системой?

Лучший ответ: Качайте Викторию и проверяйте жесткий диск. Желательно с загрузочного диска/флешки, но общий анализ можно провести и из под Windows. Только перед использованием почитайте мануалы, чтобы не запустить тест на чтение/запись который перезапишет все данные на жестком диске.
Ну и журнал событий Windows тоже можно посмотреть, чтобы определить в чем проблема.

Худший ответ: Проверьте диск на bad-блоки.
Вопрос: Как правильно составить запрос к БД?

Лучший ответ: @another_dream так у вас не правильно формируется сам запрос$result = $mysqli->query("SELECT * FROM `entry` WHERE `descr` LIKE '%{$query}%' OR `content` LIKE '%{$query}%' OR `title` LIKE '%{$query}%'");

Худший ответ: $result = $mysqli->query("SELECT * FROM entry WHERE descr LIKE %$query% OR content LIKE %$query% OR title LIKE %$query%");
Мой вариант, но выборка не происходит. $result возвращается пустой.
Вопрос: Как подарить приложение из Android Market?

Лучший ответ: Рутуйте телефон, вытаскивайте apk из кеша.

Худший ответ: Подключить свой аккаунт к ее телефону на время?
Вопрос: Как проверять весь массив на null?

Лучший ответ: Как проверить много переменых на null?

Худший ответ: Ну разница есть между одной ссылкой на null и массивом содержащий ссылки на null. Подробнее тут stackoverflow.com/questions/2369967/how-we-check-f...
Вопрос: Открывать документы через cmd в редакторе Sublime Text 2

Лучший ответ: Вот нашел решение для пользователей Windows
Вводим в cmd:
doskey subl="C:\Program Files\Sublime Text 2\sublime_text.exe" $*
Соответственно путь по которому установлена программа у каждого пользователя свой.

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

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

Худший ответ: На oDesk русского сегмента нет. Изучайте английский и тогда смотрите в сторону зарубежных бирж.
Вопрос: Выбор Java фреймворка для веб-разработки?

Лучший ответ: Зависит от приложения и архитектурных требований.

Во-первых, компонентный или action-based? 

Компонентные — легко писать (i.e. «разрабатывать большие сложные гуи») но долго разрабатывать кастомные компоненты, приложение будет в среднем тяжелее (медленнее) и будет жрать больше памяти (особенно JSF имплементации с conversation state сохраненным в HttpSession) на одного юзера. Кроме того, их нередко сложно кластеризовать из-за плохого использования сессии библиотеками.
Из компонентных: JSF (XxxFaces), Tapestry 5, GWT. Тапестри 5 не советую — имел опыт разработки большого публичного сайта на нем. Посоветовал бы попробовать GWT — слышал максимум положительных отзывов от людей, кто что-либо на нем делал. Опять-таки, лично я не советую JSF — сразу потеряете контроль за тем, что находится у вас в сессии, приложение станет «тяжелым».

Action-based фреймворки: чуть медленнее разработка, легко сделать приложение stateless и получить простую кластеризацию, приложение получается легковесным и быстрым.
Посоветую такие комбинации: Spring MVC + FreeMarker, Spring MVC + Velocity, Spring MVC + JSP 2 (EL-based). Слышал положительные вещи про Stripes (но он очевидно менее популярен, чем Spring MVC) и Play (всем хорош, кроме странных архитектурных закидонов — например, предлагается пихать бизнес-логику в модели, а не в выделенный сервис-леер. одно это скорее всего будет для вас критично). 

Потом, что еще надо учесть — 
1) HTML это не XML. Если движок шаблонов использует XML — это уже не очень хорошо. DOCTYPE, browser-specific комменты придется вставлять через хаки.
2) streaming, not buffering. Правильная работа с вебом — писать в outputStream по ходу, а не копить строчку и потом выбрасывать ее целиком. Почти все компонентные фреймворки грешат лишней буферизацией, многие action-based тоже. Отсюда завышенные требования к памяти, OOME при генерации тяжелых страниц, etc.
3) Обратите особое внимание на то, как в выбранном фреймворке сделаны Layouts — они должны быть удобные (ie. ближе к Django-style) и имплеменчены без буферинга (см. п. 2)
4) Если ваш фреймворк диктует вам одну конкретную прошитую javascript-библиотеку — подумайте дважды. Для intranet приложения это может сработать. Для публичного — я бы взял другой фреймворк. GWT вроде используют в паблике, но я лично с ним не работал.
5) Если к сервису понадобится REST Api, возьмите сразу фреймворк, в котором это есть, а не надейтесь на авось.

В целом так. Дадите больше требований к приложению — могу посоветовать что-то более конкретное.

Худший ответ: GWT/Vaadin + Spring/Guice + MyBatis(к чёрту Hibernate!).
Вопрос: Не запускается Linux через Wubi, что делать?

Лучший ответ: Прекратите насиловать труп бабушки. Wubi — мертвый проект.
Берете под виндой rufus, берете isoшку Ubuntu, берете флэшку и вперед и с песней. В меню rufus увидите выбор про BIOS и UEFI.

Худший ответ: Ставить нормально через live-usb. Делать разметку через gparted! Wubi - не родной способ установки для linux!
Вопрос: Какой выбрать внешний HDD для хранения данных?

Лучший ответ: Ну хранить что-то важное на одном диске я бы не советовал) Совсем. 
Внешних 2.5 -дисков на 4 ТБ не бывает. 
А так - StoreJet (те, которые в старых корпусах, вроде такого - www.capture.ru/image/SJ25M.jpg ). У меня такой лет эдак 5 уже живет на 640г. 
Другой вопрос, что когда-нибудь он всё же сдохнет.

Худший ответ: Для переноса не рекомендуется такие объемы. Возьмите два. Один для переноса, второй для постоянного хранения.
Для переноса маленький, типа HDD USB3 My Passport Ultra 500GB.
Для постоянного хранения, я бы посоветовал разориться на сетевое хранилище. У меня уже 3 года дома 24х7 работает Сетевое хранилище данных QNAP TS-420 c дисками WD green
Очень удобно. Все диски в норме. SMART Не ругается. Так что WD  можно доверять.
Вопрос: Широковещательный шторм. Как победить?

Лучший ответ: Есть небольшая сеть (10-15 машин). Один из них, видеосервер, широковещательно очень сильно флудит. Что это значит? В чем это проявляется? Мигают светодиоды на коммутаторах? Нарушается работоспособность сети? Почему вы считаете, что речь идет о широковещательном "шторме"?В чём может быть проблема Какая проблема? Опишите конкретнее.
Вообще говоря, в случае использования неуправляемых (что, как правило, автоматически означает отсутствие "интеллектуальных" нюансов вроде igmp snooping) многоадресный (мультикаст) трафик обрабатывается так же, как и широковещательный (броадкаст). Поэтому стоит задуматься о применении управляемых коммутаторов (хотя точнее можно будет советовать, получив дамп трафика и схему сети). Решить проблему "чрезмерного" многоадресного трафика (исходящего на порты, не нуждающиеся в нем) при помощи управляемых коммутаторов можно при помощи:
1) igmp snooping + igmp [snooping] querier 
2) статической записи igmp snooping
3) статической записи мультикастового MAC-адреса, соответствующего мультикастовой группе.
Наиболее простой, понятный и рекомендуемый вариант - первый. и как её быстро обнаружить? Подсоединяете ноутбук/компьютер в свободный порт коммутатора. Запускаете wireshark/tshark/tcpdump, сохраняете дамп трафика, анализируете его (например, в wireshark - Statistics -> Endpoints), делаете выводы.

Худший ответ: Вообще если сетка построена на тупых коммутаторах, флуд при мультикасте должен быть
Вопрос: Помогите найти регистратора домена

Лучший ответ: registrar: REGRU-REG-RIPN
Домен зарегистрирован через какого-то партнера reg.ru. Напишите им в саппорт (желательно из email из whois) и они скажут где он точно был зарегистрирован.

Худший ответ: 2domains, скорее всего.
Вопрос: Из чего собрать файловый сервер на 80 пк?

Лучший ответ: Если будете использоваться ZFS, например, на Nexenta, то от 8 Г рекомендую.
4 ядра.
Корпус не любой - учесть как будете вставлять большое количество дисков, нужна ли горячая замена.
Блок питания тоже не любой. В принципе современные диски много не жрут, но, с учетом ответственности, блок питания не любой.
Весь остальной бюджет - на диски, сколько хватит.
Аппаратный RAID не нужен. Nexenta и FreeNAS прекрасно программно это делают, и лучше аппаратного. Возможно нужна будет HBA, чтобы большое количество жестких дисков подключить.
В зависимости от требований скорости/емкости, возможно, имеет смысл использовать некоторое количество SSD для кэша. Все остальное - на HDD, большая часть.
Если не хотите заморачиваться с корпусом или в двойным блоком питания - просто купите готовое серверное решение от Dell, Intel, Supermicro или т.п., кто занимается готовыми серверами.

Худший ответ: Какую ОС планируете использовать и как активно будут использовать сторедж? К примеру для FreeNas Ram=8GB CPU=Dualcore и выше.
Вопрос: Как использовать шаблоны в PHP?

Лучший ответ: Не стоит, а обязательно.
Шаблонизаторов много, самые популярные - пожалуй smarty и twig.

Худший ответ: На самом деле, разумеется, тип шаблонизатора не имеет ни малейшего значения. 
Первичен подход к проблеме.  И качество прокладки между стулом и монитором.
Говнокодер всегда будет говнокодить. И если дать ему шаблонизатор, не позволяющий писать РНР в шаблоне, то у него будут горы HTML в контроллере.
Программист же вызовет сниппет <section><? ins('button_or_ava') ?></section>
При этом у сниппета будет свой шаблон<? if ($user): ?>
          <div id="user-box">
            <span class="ava" style="background: url('/images/avatars/<?=$user->avatar?>'); background-size: cover;"></span>
          </div>
<? else: ?>
    <a class='enter'>Вход</a>
<? endif ?>
Вопрос: Бекэнд — что надо, а что нет?

Лучший ответ: Apache/lighttpd + htaccess / NGINX
Протоколы: HTTP, HTTPS, Сокеты, RTMPТуннелирование, Прокси, Модель OSIHTTP-заголовки, в том числе CookiesPHP/RoR, HTML, CSS,  JSlong polling, AJAX, JSON  - для JSIRC (семафоры, PCNTL, LOCK_EX, Mutex, Shared Memory) - для PHP
Фреймворки: Yii2/Laravel/CodeIgniter/Symfony/Composer - PHP, Angular/React+Redux/Vue/Node - JS
ООП, Паттерны проектирования (MVC/MVVM/Singleton...)SQL (MySQL + PHP, Поисковые технологии (индексирование, выборка)
Пользоваться: Linux, JSBin, Git/SVN, SSH, VNC, RDP

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

Лучший ответ: Выставляйте в обработчике ToggleButton RoutedEventArgs.Handled = true:<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Button Click="Button_Click">
        <ToggleButton Click="ToggleButton_Click" />
    </Button>
</Window>private void Button_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Button clicked");
}

private void ToggleButton_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("ToggleButton clicked");
    e.Handled = true;
}

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

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

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

Лучший ответ: во-первых - перейдите на mysqli
во-вторых - пройдитесь в цикле и заполните массив всеми данным

Худший ответ: Читайте доки, этого в гугле навалом а ошибка более чем видна.