pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как занести данные из TinyMCE в БД?

Лучший ответ: Нужно вставить в функцию, перед ajax: 
tinyMCE.triggerSave();

Худший ответ: Перед сабмитом формы сделайте для инстанса редактора .save()
Вопрос: Опознать сканер пальцев

Лучший ответ: Пока нашлось это, но в сайте не уверен.

Худший ответ: А по первой ссылке не пробовали?
Вопрос: Как создать собственную сборку WordPress?

Лучший ответ: Поставьте Wordpress. Сконфигурируйте его так как вам нужно, заложите базовые вещи.
Установите нужные темы и плагины, активируйте их. И потом сделайте дамп базы и дамп содержимого ftp каталога с сайтом. Всё что вам дальше понадобится это только разобраться с приведением базы данных к новому домену (описано на сайте WP). Аплоадите файлы, и базу, выполняете набор скриптов которые пропишут в базе нужный домен. И всё. Будьте внимательны с плагинами типа NextGen gallery. Он прописывает пути к файлам стилей и скриптам в своих настройках.
Посмотрите ещё wp-cli

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

Лучший ответ: Gitolite вам нужен.

Ну или gitosis, хотя он победнее в настройках.

Худший ответ: Мы используем gitosis вместе с cgit — получается очень даже не плохо. Почему не Gitolite? потому что а) perl б) слишком наворочанная для наших целей acl.
Вопрос: Как выполнять сортировку в SQL?

Лучший ответ: Используй CASE:
select status,
          case
            when status = 0 then
               0
            else
              1
          end as status_tmp ,
          updated_at
  from твоя_таблица t
order by status_tmp , updated_at desc
Cинтаксис может быть не совсем верен, т.к. использую Oracle, но CASE знаю есть и в PostgreSQL. А проверки на кол-во строк и действия, последующие за ними, лучше реализовывать в хранимой процедуре.

Худший ответ: ORDER BY status,  upadted_at - не прокатит?
Вопрос: Как сделать установочный (.exe) файл?

Лучший ответ: WiX. Бесплатно, просто (xml-же), куча примеров в сети (codeplex.com в помощь), поддержка msi, exe, своих оболочек. И главное - используется в самой Microsoft (установщики Visual Studio 2012/2013 используют его, например).

Худший ответ: Присоединяюсь к совету Smilleey. Проще всего использовать Inno Setup. Среднестатистический инсталлятор делается за несколько кликов мыши. Если нужно что-то более бесплатное (Inno Setup бесплатен только для некоммерческого использования) или более мощное, попробуйте NSIS. Он посложнее. Для упрощения можно использовать в связке с Venis.
Вопрос: Где выбирать микроконтроллеры и прочие электронные компоненты?

Лучший ответ: Берем брошурки производителей, смотрим "примерные характеристики", выбираем на что упал глаз и потом вкуриваем даташиты.
По производителям:
NXP - ARM (Хз как их контроллеры называются, никогда не рассматривал)
Atmel - AVR (Atmega), ARM (Всякие SAM блф-бла-бла)
ST - ARM (STM32)
TI - честно говоря не уверен, что они контоллеры делают, но армовские SOC не плохие (но дорогие)
еще есть всякие MIP - но я ХЗ кто их производит и что там внутри (знаю что у них можно отдельно тактировать переферию, так сказать асинхронно с ядром - ИМХО чрезмерно специфическая фича).
Под вашу задачу, впринцыпе, подойдет простая атмега (самый дешовый варинт из всех возможных).
А вообще... у Ады соблазнительная железка, я бы наверное ее взял, интереса ради. Да и к тому же, тут будет меньше мест где вы сможете облажаться - актуально для новичка.

Худший ответ: драйвер на 18 сервоприводов с управлением по I2C
amperka.ru/product/arduino-multiservo-shield
Вопрос: Юридические аспекты при работе с IT компаниями, все ли так плохо?

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

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

Лучший ответ: В добавок насчёт циклических ссылок могу порекомендовать не забывать использовать unset к переменным, которые уже не нужны

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

Лучший ответ: Основное отличие между ссылочными и значимыми типами в том, что одни передаются по ссылке, а другие по значению, как бы это банально не звучало. Расположение в куче или на стеке — это всего лишь следствие особенностей работы с объектом, например, времени жизни, стратегией копирования, размером.
Также стоит понимать, что CLR не всегда располагает вещественные объекты на стеке. Вот статья на эту тему от Эрика Липперта.

Худший ответ: Видимо потому что вы оперируете не объектами, а ссылками на него. Если в C++ программист явно управляет этим, то здесь на себя это берет CLR и class - ссылочный тип, числовые простые типы, enum, struct - значимые и точка.
Вопрос: Как правильно сделать структуру баз данных?

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

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

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

Худший ответ: На сколько я знаю, биндингов к OpenCV еще нет. И управление памятью в OpenCV довольно таки запутанное, что мешает разработать хорошие биндинги. Если ресурсов системы хватает, для компьютерного зрения можно использовать Julia или Scala - к ним необходимые биндинги есть.
Для работы в ограниченных ресурсах, типа однокристальных компьторов на ARM, Rust подходит лучше всего. Если смириться со сложностью интелгации с OpenCV, то от C/C++ можно отказываться.
Вопрос: Какой linux дистрибутив работает из коробки?

Лучший ответ: Любой энд-юзер дистрибутив. Будь то Ubuntu, Fedora или Suse. Все их ставишь и они работает, при чем в отличии от винды не требуют скачивания всяческих драйверов. Моя немолодая матушка Ubuntu GNU/Linux ставит с закрытыми глазами, а с Microsoft™Windows™ справится не может.

Худший ответ: В чем проблема то? Ubuntu LTS - вполне стабильная. Не нравится - смотрите в сторону Debian / Mint.что-то похожее на полноценную ОС
Ну, это как-то ни о чем. Давайте конкретнее
Вопрос: Как лучше реализовать защиту php файлов от прямого доступа?

Лучший ответ: часто все файлы к которым прямой доступ должен быть запрещен просто выносят за пределы веб директории
/src  (здесь весь код приложения)
/web (сюда смотрит apache/nginx)
-- index.php

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

Лучший ответ: Микросхема 74HC595 — один из самых распространённых сдвиговых регистров: синхронный, с регистром данных (latch). Она позволяет увеличивать количество выходов микроконтроллера.
Чип преобразовывает входящий последовательный сигнал на 1 пине (Ds) в выходной параллельный на 8 пинах (Qx). Последовательная передача синхронна: для такта используется дополнительный пин (SHcp). Также отдельным пином управляется регистр данных (STcp), что позволяет изменять сигнал на 8 выходах единовременно, когда все данные переданы.
Таким образом образом из трёх пинов микроконтроллера, такого как Arduino, можно получить 8 цифровых выходов. Из регистров 74HC595 можно делать каскады, подключая один за другим (через пин Q7’), и таким образом из всё тех же 3 входящих линий получать 16, 24, 32 и т.д. цифровых выходов.
Используйте сдвиговый регистр для увеличения количества выходов микроконтроллера. Например, для управления большим количеством светодиодов.
Для удобной работы с чипом через Arduino, существует встроенная функция shiftOut.

Худший ответ: Можно управлять кучей светодиодов используя контроллер 7-seg дисплеев max7219.
Одна микросхема может управлять матрицей 8x8 светодиодов используя только 3 ноги на микроконтроллере. нужен только один резистор (а не по одному на каждый диод), несколько max7219 можно подключить последовательно. недостатки - макс ток через диод 40 мА, при 5 V, очень немного... ну и нельзя управлять яркостью отдельных диодов, либо вкл либо выкл.
Еще вариант - dm633, драйвер светодиодов на 16 каналов, ток до 90 мА, при 17В. Можно управлять яркостью каждого диода (ШИМ) и глобально яркостью всей матрицы. Тоже можно подключить последовательно несколько драйверов...
Вопрос: Какую выбрать книгу по sql?

Лучший ответ: Не книга, а практика, там же есть и ссылка на книгу www.sql-ex.ru

Худший ответ: SQL-запросы для простых смертныхМартин Грабер
Вопрос: Может ли поисковый робот проиндексировать ресурс, на который ему нигде не было указано?

Лучший ответ: Без ссылок не может проидексировать субдомен. Но вы на всякий случай в корень субдомена закиньте robots.txt с запретом. Вдруг таки промелькнёт где ссылка.

Худший ответ: Да может если вы другу ссылку по месседжеру кинете. Skype, Хэнгаут, ICQ все сливают.
Вопрос: Преподавание С в университете. Нужен совет?

Лучший ответ: Одна из причин популярности С — книга K&R, она очень хорошо написана и база языка из неё подходит и сейчас.

Худший ответ: Когда я преподавал (правда в школе) я старался отыскать интересные и не слишком сложные задачи, которые были бы обозримы и давали ну хоть какую нибудь отдачу(удовлетворение). 
Это сильно мотивирует. А весь процесс обучения возможностям IDE и отладке в частности я постарался максимально встроить в контекст реализации этих небольших задач. Ведь даже маленькая программка нуждается в отладке.

Приведу примеры задач, которые сразу приходят в голову:
 — Сортировка чисел
 — Построение треугольника паскаля
 — Нарисовать форматированную таблицу умножения
 — Отсортировать введенные числа
 — Морской бой
И так далее… Важно не допускать, того что бы студент был сразу брошен на амбразуру. От этого они как правило пугаются и начинают ненавидеть предмет.

К слову, апофеозом моего преподавания стало написание графических циферблатных часов отражающих реальное время(Так я еще и научил одиннадцатиклассников азам геометрии :-) ).

Удачи вам!
Вопрос: Как правильно смонтировать cifs (ubuntu 14.04) с доступом на запись для nginx/php (www-data)?

Лучший ответ: Прочитал вот этот мануал linux.die.net/man/8/mount.cifs и добавил в параметры монтирования в /etc/fstab параметр noperm - внезапно доступ на запись появился у обоих пользователей (у моего консольного и веб-сервера www-data).
Итого, строка подключения в fstab выглядит так: //192.168.20.115/filesfolders$ /mnt/filesfolder cifs user=guest,pass=,iocharset=utf8,noperm,uid=www-data,gid=www-data,dir_mode=0777,file_mode=0777,sec=lanman 0 0
Однако, это не снимает общих вопросов на понимание: почему у директории я вижу права drwxrwxrwx, а на деле писать в неё может только owner? Почему файлы при сообщениях permission denied файлы всё-таки создаются, но пустые (если нет доступа, то его не должно быть совсем, так ведь?)

Худший ответ: У меня заработало с такими параметрами://192.168.0.1/share /mounted cifs users,user=user,password=password,rw,iocharset=utf8,gid=user,uid=user,noatime,nounix,file_mode=0777,dir_mode=0777,auto 0 0
Возможно, у Вас был какой-то релиз модуля cifs c багом.
Вопрос: Как с помощью jQuery отправить форму?

Лучший ответ: Гуглите ajax отправка формы
Примерный код:function send_form(form_id) {
    var form = $('#'+form_id);
    var msg   = form.serialize();
    $.ajax({
        type: 'POST',
        url: '../handlers/hSentEmailCall.php', // Обработчик собственно
        data: msg,
        success: function(data) {
            // запустится при успешном выполнении запроса и в data будет ответ скрипта
        },
        error:  function(){
            alert('Ошибка!');
        }
    });

}
Запускать при помощи onclick:<a href="#" class="add" onclick='send_form('add')'>Добавить</a>

Худший ответ: Забыл указать, что мне не требовался переход на форму обработчика. Решил таким образом:$('.add').click(function () {
    var msg = $('#add').serialize();
    $.ajax({
        type: 'POST',
        url: '/add',
        data: msg
    });
});
Вопрос: Как присвоить указателю адрес двумерного массива?

Лучший ответ: char *test[255][100] -- это двумерный массив указателей на char.
А вот char (*test)[255][100] -- это указатель на двумерный массив char, чувствуете разницу?
По вашему вопросу:
char (*test)[100] = (char (*)[100]) 0xDEADBEEF;

Худший ответ: @GavriKos нет мне нужен удобный способ обращение к данным распаложенным в указанной области.
Эмм.. char* array =  - вот вам и указатель на начало массива. Оттуда уже вычитываете исходя из структуры.
Вопрос: Как настроить nginx для движка E2 Эгея?

Лучший ответ: Ничего сложного, у меня завелось так:location /blog/ {
		root   /var/www/html/example;
		index  index.php index.html index.htm home.php;
		log_not_found  off;
		rewrite ^/blog/(.*)$ /blog/index.php?go=$1 last;
	}

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

Лучший ответ: А так?

Худший ответ: Я использовал amazon.DE. Правда не все товары можно покупать. И посылают обычно просто почтой… по Германии то пота быстро летит, а как к нам попадает, то вязнет сразу же. Но трекинг есть.
Вопрос: Попытки подбора паролей в SSH, OpenWRT

Лучший ответ: 1. Запретить по ssh авторизовываться руту.
2. Перевесить ssh на другой, отличный от 22, порт.
3. Убрать авторизацию по паролю, сделать авторизацию по ключам.

Худший ответ: Решение нашёл, фильтрация по MAC-адресам, так как доступ мне нужен только с ноутбука, планшета и смартфона, то сделаю белый список MAC-адресов.
Только странно, почему именно китайцы?
Вопрос: На сколько опасно автоматическое обновление linux-сервера?

Лучший ответ: И не зря рекомендуют.
Придет мажорное обновление php/nginx/apache или любого другого жизненно важного продакшен-компонента и есть не малая вероятность того, что сервисы прилягут.
Вместе с обновлениями приходят патчи на ядро + хедеры и зависимости, но важный момент в том, что зависимости обновляются в ту же минуту, а новое ядро загрузится только с перезагрузкой, это вызовет неизбежные конфликты, если не сделать перезагрузку (а делать ее нельзя очень часто).
Вообще, по опыту - любые обновления непредсказуемы, можно попасть в неловкую ситуацию даже обновляя какие-то безобидные вещи вроде logrotate.

Худший ответ: В cron ничего добавлять не надо, есть cron-apt.
security можно накатывать автоматически, остальное по желанию и задачам.
Вопрос: Способы улучшения JS-кода?

Лучший ответ: Знаки !, -, + заставляют интерпретатор вычислить (в данном случае - выполнить) то, что находится справа. Например, в Bootstrap всюду вставлен знак + для этого.
Однако, более правильным было бы переписать код так:(function ($){
    "use strict";
    
}(this.jQuery));
Это тоже шаблон самовызываемой функции, описан в книге Стояна Стефанова "JavaScript. Шаблоны" (люто рекомендую читать не смотря на преклонный для литературы данного типа возраст, где взять - сами знаете).
Обращение к локальным переменным избавляет от головной боли и долгой отладки, когда непонятно, почему при клике на эту кнопку не только обновляется список записей таблицы, но и увеличивается размер шрифта в заголовке страницы. Глобальные переменные - зло, и с этим нужно бороться. Только замыкания, только хардкор.
Что касается скорости - в сравнении с перерисовкой DOM любой ваш код будет быстрым, как молния. И да, обращение к глобальным переменным дороже, чем к локальным, т.к. сначала делается поиск в локальной области видимости, и только потом - к глобальной.document и window можете помещать, можете не помещать - разница будет только в том, что можно использовать краткие имена:(function (W, D){ 
    // W = window   (1 символ против 6)
    // D = document (1 символ против 8)
    "use strict";

}(window, document));
Всё остальное в указанной книге ну и конечно Николас Закас, "JavaScript. Оптимизация производит....

Худший ответ: Зачем перед функцией знак "!" ? Для красоты?
Это "говорит" компилятору что начинается выражение, т.е. его нужно выполнить.Обращение к локальным переменным действительно производит меньше нагрузки?
Да, локальные переменные быстрее замкнутых переменных, а глобальные ещё медленнее.И стоит ли помещать document, window и т.п в замыкание по этой же причине
Нет, лучше поменьше к ним обращаться.Какие еще есть способы подобного улучшения кода? В плане нагрузки, скорости?
Много и под разные движки:
* Не используйте глобальные переменные (для внутреннего кода)
* Делайте маленькие ф-ии - они лучше оптимизируются, (но сам вызов большого кол-ва ф-ий замедляет код и иногда "инлайн" код лучше).
* Не используйте try-catch (везде попало) - они отключают оптимизацию
* Не передавайте arguments по ссылке - отключается оптимизация
* Не меняйте тип переменной, например если храните число, то не меняйте на строку - лучше сделать новую переменную
* Уменьшайте кол-во неявных преобразований (+ используйте "use strict")
* Если у вас много однотипных объектов, то делайте их через "класс" (и в дальнейшем не расширяйте атрибутами)
* Используйте массивы как массивы, а не как хеш-объекты (не используйте for in), храните в них однотипные объекты
* Где нужная бо'льшая скорость можете попробовать asm.js
* Подмена "scope" через call/apply замедляет вызов (в сравнении с прямым вызовом ф-ии)
* Не используйте with/eval
...
* Пробегитесь по уже написанным статьям в интернете по оптимизации.
* Сравнивайте конкурирующие куски кода по скорости самостоятельно, например на jsperf, и делитесь результатами с сообществом.
Вопрос: Когда начинать изучать алгоритмы и структуры данных?

Лучший ответ: Дайте совет, когда и как стоит приступать к этим вкусняшкам? Когда у вас появятся релевантные задачи. Например, как вам уже рекомендовали, "олимпиадные". (рекомендую codeeval и codewars). Вы можете сначала решить задачу каким-либо "наивным" способом, затем поискать (спросить) подходящую структуру данных, сравнить производительность подходов. На мой взгляд, привязка к какой-никакой практике позволяет знаниям лучше усваиваться.
Еще могу порекомендовать курс (там две части) на coursera от Stanford за авторством Tim Roughgarden. Очень доступно объясняет.

Худший ответ: 150 страниц голой теории? смысл? вспомните как в школе учились - 2-10 страниц теории + задачки по прочитанной теме и так далее в таком цикле. и конечно после каждой главы проверка + сложные задачи. как то так нужно обучаться точным наукам
Вопрос: Как дальше развиваться PHP программисту?

Лучший ответ: Уезжать за границу и рубить деньги.

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

Лучший ответ: Вопрос обсуждался уже тысячу раз.
Для IE < 9 нужен шрифт в формате eot,  IE 9+ - woff.
Подключайте все нужные форматы.@font-face {
  font-family: 'room';
  src: url('../fonts/room_bold-webfont.eot');
  src: url('../fonts/room_bold-webfont.eot?#iefix') format('embedded-opentype'),
  url('../fonts/room_bold-webfont.woff2') format('woff2'),
  url('../fonts/room_bold-webfont.woff') format('woff'),
  url('../fonts/room_bold-webfont.ttf') format('truetype'),
  url('../fonts/room_bold-webfont.svg#roombold') format('svg');
  font-weight: 600;
  font-style: normal;
}
Конвертировать можно здесь или здесь
+ насыщенность для одного и того же шрифта , указывается не через разные font-family, а через font-weight, заданный в описании шрифта. 
Пример:@font-face {
  font-family: 'room';
  src: url('../fonts/room-webfont.eot');
  /*остальные форматы*/
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: 'room';
  src: url('../fonts/room_bold-webfont.eot');
  /*остальные форматы*/
  font-weight: 600;
  font-style: normal;
}
Теперь, указав font-family для всего нужного блока, можно оперировать только насыщенностью, указывая  font-weight.

Худший ответ: Посмотрите на поддержку формата ttf. Очевидно, в IE существуют проблемы. Следует применять шрифт в формате woff, тем более, что он и весит меньше.
Конвертеров много. Лучший из них (в смысле функционала) Fontsquirrel.
Вот пример куска вашего кода с конвертацией ваших шрифтов в woff.
Вопрос: Как сделать сложный getList запрос в 1С-Битрикс?

Лучший ответ: Примерно так, если нужны поля инфоблока:use Bitrix\Main\Application;
use Bitrix\Highloadblock\HighloadBlockTable;
use Bitrix\Main\Loader;

Loader::includeModule('highloadblock');
Loader::includeModule('iblock');

$hlBlockId = 2;

$hlblock = HighloadBlockTable::getById($hlBlockId)->fetch();

/** @var \Bitrix\Main\Entity\Base $entity */
$entity = HighloadBlockTable::compileEntity($hlblock);

/** @var \Bitrix\Main\Entity\DataManager $dataClass */
$dataClass = $entity->getDataClass();

Application::getConnection()->startTracker();

$result = $dataClass::getList([
    'select' => array(
        'UF_ELEMENT_ID',
        'NAME' => 'ELEMENT.NAME',
        'CODE' => 'ELEMENT.CODE',
        'DETAIL_PICTURE' => 'ELEMENT.DETAIL_PICTURE',
    ),
    'runtime' => array(
        'ELEMENT' => array(
            'data_type' => '\Bitrix\Iblock\ElementTable',
            'reference' => array(
                '=this.UF_ELEMENT_ID' => 'ref.ID'
            ),
            'join_type' => 'inner'
        ),
    ),
    'limit' => 10,
]);

// Можно смотреть сформированный запрос
echo '<pre>', $result->getTrackerQuery()->getSql(), '</pre>';

while ($row = $result->fetch()) {
    echo '<pre>';print_r($row);echo '</pre>';
}
Со свойства чуть сложнее.
P.S. некоторые примеры с использованием ORM D7

Худший ответ: Запишите данные в массив и потом используйте метод GetList(). Удалите из цикла GetByID(), так не надо делать.while($arElement = $result->fetch()) {
   $arElements[] = $arElement;
}
$res = CIBlockElement::GetList(...
Вопрос: Что лучше табы или пробелы?

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

Худший ответ: Этот вопрос до сих пор не снесен? 
Интересно, о ком я думаю слово "слоупок"?