pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как победить Permission denied у nginx?

Лучший ответ: Возможно причина в selinux, так как каталог не стандартный. getenforce для проверки состояния.
Текущий SElinux контекст файлв можно посмотреть с ls -Z  /srv/r/index.html, 
а установить соответствующий chcon -Rv --type=httpd_sys_content_t /srv/r,

Худший ответ: SElinux  и firewall возможно, если более простые действия не помогли
https://www.nginx.com/blog/using-nginx-plus-with-s...
https://linuxize.com/post/how-to-stop-and-disable-...
Вопрос: Как сымитировать «нажатие» кнопки выключателя?

Лучший ответ: Вроде бы нашел решение (не уверен, потому как к текущему моменту микроконтроллер pic16f690 еле живой и глючит, после того, как я случайно подал на него 12 вольт). Исследовал схему с помощью осциллографа, и в этом месте, получил вот такую картину:
Момент включения + шум (обычное состояние):
Шум:
после чего пришел к выводу, что "кнопка" срабатывает, если на ножку МК подается подобный сигнал. Набросал на ардуино простенькую "включалку", которая через раз работает (видимо из-за умершего МК).void setup() {
  pinMode(10, OUTPUT);
  pinMode(2, INPUT);
}

int buttonState = 0;
void loop() {
  buttonState = digitalRead(2);
  if (buttonState == HIGH) {
    digitalWrite(10, HIGH);
    delayMicroseconds(2);
    digitalWrite(10, LOW);
    delayMicroseconds(2);
  }
}
необходимо объединить землю между ардуино и выключателем, схема включения кнопки для ардуины - arduino.cc/en/Tutorial/Button.
Заказал новый выключатель на АЛИ, когда он придет, опробую это на нем, по всей логике вещей, должно будет работать идеально, возможно кому-то поможет, всем спасибо за попытки помочь.

Худший ответ: По ссылке, которую Вы дали, большими буквами написано, что выключатель емкостной )
Судя по сниму лицевой части на плате две площадки для прикосновения. Если совсем не очень с электроникой, то смотрите куда приходят проводники на контроллер и с помощью мультиметра смотрите изменение напряжения в момент касания тач-панели (не забываем про ТБ).
Вопрос: Как поднять общую WIFI на большее расстояние и на тысячи кастомеров?

Лучший ответ: Mesh сеть (сложно тянуть медь/оптику к каждой точке в парке). Лучше серьезных вендоров — Cisco, Aruba.

Худший ответ: Ruckus ZoneFlex в уличном исполнении + контроллер, Zone Director. Требование к бюджетности ведь не упоминалось?
Вопрос: Как переместить элемен в начало двоичного файла?

Лучший ответ: -- тут был неправильный коммент, я неточно прочел условие задачи
1. Всасывать весь файл в память - не катит даже для лабораторной работы. Если можно - задача не задача вообще.
2. Я бы прочел файл один раз, запомнил seek_pos для минимума и вторым проходом записал бы все в новый файл. Это 2N, плохо, но не смертельно. 
3. Код от ОП - дикий непролазный лес, отвратительный даже для студента-гуманитария
4. N*LogN можно получить чанками, но код запутается, что для лабы не очень.

Худший ответ: Почему у вас память выделяется под int, а читаются байты размером с double?
Почему у вас поганый паскальский стиль с выделением переменных где-то далеко в начале программы и их использованием? Почему вы не объявили переменную i в заголовке цикла?
Почему вы используете функции из стандартной библиотеки C (fopen, fwrite, ...), хотя пишите на C++?
Зачем вы перемещаете указатель в начало файла сразу после открытия? Сразу после открытия указатель и так стоит на начале.
В том виде, как сделано у вас, можно все операции проделать в памяти, выполнив отображение файла.
Вопрос: Софт для перерывов в работе за компьютером

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

Худший ответ: В смысле? Принудительная блокировка компьютера или игрушка а ля «Зума»?

Я одно время использовал планировщик Outlook — просто каждые 2 часа пикал и я начинал заниматься «другими делами»…
Вопрос: Есть ли opensource альтернативы slack?

Лучший ответ: Взгляните на https://rocket.chat/https://github.com/RocketChat/Rocket.Chat

Худший ответ: Насколько я знаю, нет. Проект слишком сложный и затратный, чтобы кто-то занимался им for fun.
Взгляните на бесплатный OpenFire + Spark. Динамично он развивается? Широкий функционал? :)
Вопрос: Протокол общения клиент–серверной программы?

Лучший ответ: Выше уже отметили: JSON или XML. От себя могу добавить, что таки JSON в плане эффективности немного лучше будет (гораздо меньше избыточной служебной информации), но XML можно валидировать с помощью написанных для отдельных запросов схем. Есть еще BSON, который еще эффективнее, чем JSON, ну и, например, ProtocolBuffers (http://code.google.com/p/protobuf/). Выбор должен зависеть от специфики работы связки клиент-сервер.
Ну и желательно написать этакий фреймфорк для для запросов/ответов, так работать будет проще. Например, для запроса обязательными полями могут быть номер, время запроса, версия протокола и некоторый payload, который и будет меняться в зависимости от типа запроса.

Худший ответ: Я бы в первую очередь посмотрел в сторону XML-RPC.
Вопрос: Какая книга подойдёт для знакомства с философией разработки под Android (февраль 2015)?

Лучший ответ: Я рекомендую посмотреть канал slidenerd на Youtube. Автор очень хорошо объясняет. Лучше этого канала я не видел. Сейчас идет серия видеоуроков про Material design

Худший ответ: Из блогов могу порекомендовать блог германского разработчика Vogella. Уроки в нём собраны по темам, каждый начинается с теоретического объяснения и содержит много кода. Есть также уроки по базовым темам, таким как установка необходимого набора инструментов.
Для ознакомления с философией материального дизайна я, уж извините, отправлю вас на страницу официальной документации.
Вопрос: Посоветуйте Android-смарфтон. [$300]

Лучший ответ: Когда же люди научатся пользоваться поиском

Худший ответ: Ну если не хотите Самсунг или LG, но надо большое разрешение и тд и тп — берите c clove, например, HTC Desire — я думаю вложитесь в 300 зеленых сейчас.

P.S. Лично я пользуюсь HTC Wildfire — если игры не нужны, то его разрешение ничем не мешает (не нашел ниодного приложения, кроме игр, не работающего с данным разрешение). Все остальное отлично: энергопотребление меньше, сборка отличная, нифига не тормозит тем более HTC, ИМХО.
Вопрос: Какой веб сервер актуален на данный момент для несложного веб-сайта?

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

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

Лучший ответ: мОгу.

Худший ответ: Доброе.
Пишите в службу поддержки с просьбой удалить аккаунт. Пишите на английском. Вам зададут несколько вопросов, на которые вы будите должны ответить. Из того что я помню: месяц и год регистрации, пять контактов из списка. Без ответов на вопросы, удалить не получится. В крайнем случаи у меня не получилось. Может после покупки скайпа Майкрософт что-то и поменялось.
UPD: Хотя вот тут почитайте https://support.skype.com/ru/faq/FA142/mozno-li-ud...
Вопрос: Пара «ламерских» вопросов знатокам UNIX?

Лучший ответ: в комментариях жесть %)
по существу:

1. ps auxwww
2. reset

Худший ответ: 1) Можно попробовать выводить меньше инфы: ps ax | grep ssh
Вопрос: Безопасные для глаз мониторы?

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

Худший ответ: У меня глаза болят от TN матриц, посему вынужденно покупаю мониторы с дорогими MVA и IPS матрицами (написано в спецификациях к мониторам).
А еще раньше считалось, что глянцевые экраны сильно напрягают зрение бликами, а теперь TN Film считается супер модным. Я беру матовые экраны, т.к. мое зрение действительно напрягается от бликов…

Совет — выбирайте монитор по своему самочувствию после 8 часовой работы за тем или иным монитором :)
Вопрос: Как правильно сделать привязку данных в wpf?

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

Худший ответ: Как выше INotifyPropertyChanged, либо ObservableCollection, который в свою очередь реализует INotifyPropertyChanged. Ну и в binding надо указать Mode=TwoWay.

Еще такой момент, если используется ObservableCollection, то в данном случае публичным есть только событие CollectionChanged, вы получите перерисовку всего ListView, если же у вас будет пара тысяч строк, вы получите неслабый такой тормоз, тут надо будет использовать виртуальность. Но так как это всё же ListView, то INotifyPropertyChanged вам ничем не поможет.
Вопрос: Как лучше обеспечить защиту SSH от брутфорса?

Лучший ответ: - использовать ключи, пароли отключить
- port knocking
- fail2ban

Худший ответ: и можно брутфорсить до естесвенной смерти вселенной.  - хороший юмор, плюсую)
Вопрос: Куда направлена тенденция, от веб к платформам или наоборот?

Лучший ответ: Приоритеты (к сожалению) такие, но хотелось бы чтобы они шли в обратном порядке:
1. Максимальная скорость разработки
2. Максимальный доход за наименьший промежуток времени
3. Быстрый охват большего количества платформ.
4. Простота поддержки разработанного решения.
5. Скорость работы клиентского приложения и удобство для пользователя.
При обратном порядке - я готов платить за каждое приложение!
Т.е. тенденция при таком порядке - это webkit/HTML5.
А при обратном - это с учетом всех особенностей: под каждую платформу - своё приложение.

Худший ответ: суровая правда жизни в том что жаваскрипт и его вебасемблер это будущее
Вопрос: Можно ли в коде использовать строки из values/strings.xml (Android)?

Лучший ответ: Как-то вот так:Toast.makeText(getApplicationContext(), getResources().getString(R.string.your_text), Toast.LENGTH_LONG).show();
Или сразу вызвать getString(), но это смотря откуда вызывать метод:Toast.makeText(getApplicationContext(), getString(R.string.your_text), Toast.LENGTH_LONG).show();

Худший ответ: У Toast есть перегрузка метода makeText(), которая сразу принимает на вход id строкового ресурса
Вопрос: Если приложение в российском App Store — его могут скачивать пользователи зарегистрированные в других странах?

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

Худший ответ: Спасибо! Не заметил эту строку в itunesconnect: Unless you select specific territories, your app will be for sale in all App Store territories worldwide.
Вопрос: Laravel CRUD генератор?

Лучший ответ: Никак не называется, такого функционала «из коробки» нет. Используйте сторонние пакеты типа:
https://github.com/zofe/rapyd-laravel
https://github.com/sleeping-owl/admin

Худший ответ: обзор CRUD-генераторов для Laravel:
blog.gsoft.ru/archives/61
Вопрос: Нужно ли приложение?

Лучший ответ: Нужно. Можно в частности, обучалку для слепой печати сварганить. Каждой клавише свой звук, вроде миди клавиатуры. Заодно и слух можно потренировать у кого медведь проходил. Можно арканоид для мышки сбацать — положение мыши определяет тон, положение шара тем же тоном, но прерывистым (чем ближе тем чаще). Аж самому захотелось сделать ))

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

Лучший ответ: Про энергопотребление вам уже ответили. 
По поводу причин разницы во времени жизни (будем исходить из того, что СИМ карты разные как и набор приложений на них):

1) SIM может послать на телефон комманду POLL INTERVAL. Это команда скажет телефону как часто он должен слать команду STATUS на карту. К примеру если интервал в первом случае N секунд, а во втором 10*N, то разницу во времени работы наверное можно объяснить (я не знаю сколько энергии потратит телфон на посылку и команды и обработку ответа). Вполне возможно, что во втором случае поллинг вообще отключен командой POLLING OFF.

2) Возможно на первой карте стоит приложение типа Celltick, которое ловит CELL BROADCAST MESSAGE и выводит их на экран (эдакий новостной/рекламный спам). У вас телефон показывает какие-либо сообщения в IDLE MODE?

3) SIM карта может посылать SMS в сеть без вашего ведома (если есть специальное приложение, к примеру часто используется для отправки обновленного IMEI телефона), или мб она запрашивает у телефона регулярно какие-нить данные типа Network Measurement Result, location information etc… Может просто банальный баг в софте карты, который отсылает постоянно какую-то из вышеперечисленых комманд на карту (а что, и такое может быть).

На 100% сказать без логов общения телефона с картой невозможно, мне кажется. По крайней мере я не возьмусь утверждать.

PS: Команды POWER OFF CARD и POWER ON CARD — проактивные (посылаются картой телефону). Используются для включения/выключения ДОПОЛНИТЕЛЬНОЙ карты. Что за дополнительная карта — я не понял. Судя по статистике из моих источников из ~900 проверенных телефонов они (команды POWER ON/OFF) поддерживаются только в 75 (60 из которых произведены Motorola). Точнее даже не поддерживаются, а заявлены как поддерживаемые. Думается комманды на данный момент не используются совсем.

Худший ответ: Вы сами себя не в тот угол загнали, смс, координаты это конечно да, но главное это что телефон постоянно пингует сеть с периодом обычно несколько минут и тут зависит от передатчика, поддерживает ли сбережение какой уровень сигнала и тд
Вопрос: Как загрузить шаблон на 1c-bitrix если срок получения обновлений закончился?

Лучший ответ: Разверните на отдельной машине новый демо-сайт и на нём установите решение. А потом его перенесите на ваш сайт.

Худший ответ: можно загрузить на сайт с активной лицензией, и оттуда перенести на необходимый
Вопрос: В Open Server не поддерживается CSS?

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

Худший ответ: Вам как минимум нужна простейшая страница. Создайте файл index.html<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Заголовок</title>
<style>
 .red-color {
   width: 50px;
   height: 50px;
   background-color: red;
 }
</style>
</head>
<body>
<div class="red-color">ТЫЦ</div>
</body>
</html>
Вопрос: Мобильный 2D игровой движок для TBS?

Лучший ответ: Два месяца назад исследовал этот вопрос. Задача стояла так: найти кроссплатформенный игровой движок, желательно, но не принципиально С++, для написания любых игр под Android, IOS, и по возможности остальные системы типа blackberry.
Сначала хотелосб Unity3D. Для 2d текущая версия unity мне показалась совершенно неприспособленной. Вроде обещали в ближайшей версии допилить. Но стоит учитывать, что некоторые необходимые для мобильника фичи типа texture batching весьма странно реализованы и только в pro версии. Смотрел CoronaSDK, показалась неплохой штукой, но писать всё на Lua лично мне не хочется. Это индивидуальные тараканы, вам может подойдёт. Ещё неплох Cocos2d-x. Это C++ порт Cocos2d, который тоже неплох, много чего умеет. Сейчас мне кажется лучшим вариантом среди готовых фреймвёрков. Все эти движки пугали как чёрный ящик, ограничивающий возможности списком своих фич. Особенно это касается unity3D, залезть в Cocos2d не проблема.
Остановился в конце концов на неиспользовании готового. Взял C++, SDL2, пошаманил с Open GL и получил самописное чудо. Основное достоинство — полное понимание внутренностей, нет вопросов, как что-то сделать, никаких проблем с производительностью. Очень круто то, что этот же код работает на десктопе и можно тестить любые разрешения, просто меняя размер окна. Ну и запускается без деплоя на устройство, что ускоряет разработку. За чуть более чем месяц появился сам движок и почти есть игра на нём. Недостатки подхода очевидны — за каждой фичей типа сети, json, xml, шрифтов, форматов картинок и физики надо искать и осваивать отдельную либу. Так же надёжность не проверена. Ну и свой велосипед никак не упрощает вхождение новых людей в команду. На данный момент игра не завершена, но пока не жалею, что выбран такой путь. Подумайте, возможно тоже захотите своё велосипед.

Худший ответ: Специально для RTS навряд ли вы найдёте. Как всегда посоветую Corona SDK, просто потомучто лично мне нравится. Но можно и Unity, и Marmalade, и Cocos2d-x. Уж сами выбирайте.

RTS одиночная будет или с мультиплеером? Если с мультиплеером, то локальным или через инет? Если через инет, то есть сервис Photon, с интеграцией с короной:
www.coronalabs.com/blog/2013/08/15/guest-piece-photon-cloud-corona-sdk-a-dream-team-for-cross-platform-multiplayer-games/

А если по локалке, то есть модуль AutoLAN
www.mydevelopersgames.com/AutoLAN/
Вопрос: 301 redirect ASP.NET?

Лучший ответ: Содержимое web.config - реально работающий пример (названия сайтов изменены на фейковые), который:
1) при переходе на www.company.ru перенаправляет на company.ru
2) при переходе на mysite.com перенаправляет на company.ru
3) при переходе на www.mysite.com перенаправляет на company.ru
4) сохраняется ссылочная целостность, т.е. при переходе по www.mysite.com/home/write_to_us  перенаправляет на company.ru/home/write_to_us
Если не работает, значит, что-то с модулем URL Rewrite Module в IIS.
На сайте mysite.com (с которого будет редирект) в web.config пишем:<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
	<rewrite>
		<rules>			
			<rule name="Condition1" stopProcessing="true">
				<match url="^(.*)$" ignoreCase="false" />
				<conditions logicalGrouping="MatchAll">
					<add input="{HTTP_HOST}" pattern="^(www\.)?mysite\.com$" />
				</conditions>
				<action type="Redirect" url="http://company.ru/{R:1}" redirectType="Permanent" />
			</rule>
			<rule name="Condition2" stopProcessing="true">
				<match url="^(.*)$" ignoreCase="false" />
				<conditions logicalGrouping="MatchAll">
						<add input="{HTTP_HOST}" pattern="^www\.company\.ru" />
				</conditions>
				<action type="Redirect" url="http://company.ru/{R:1}" redirectType="Permanent" />
			</rule>
		</rules>
	</rewrite>
  </system.webServer>
</configuration>
На сайте company.ru (на который будет редирект) в web.config пишем:<?xml version="1.0" encoding="utf-8"?>
<configuration>
  ...
  <system.webServer>
	  <rewrite>
		  <rules>
			  <rule name="Redirect to company.ru 1" stopProcessing="true">
				  <match url="^(.*)$" ignoreCase="false" />
				  <conditions logicalGrouping="MatchAll">
					  <add input="{HTTP_HOST}" pattern="^(www\.)?mysite\.com$" />
				  </conditions>
				  <action type="Redirect" url="http://company.ru/{R:1}" redirectType="Permanent" />
			  </rule>
			  <rule name="Redirect to company.ru 2" stopProcessing="true">
				  <match url="^(.*)$" ignoreCase="false" />
				  <conditions logicalGrouping="MatchAll">
						  <add input="{HTTP_HOST}" pattern="^www\.company\.ru" />
				  </conditions>
				  <action type="Redirect" url="http://company.ru/{R:1}" redirectType="Permanent" />
			  </rule>
		  </rules>
	  </rewrite>
  </system.webServer>
  ...
</configuration>
Возможно, сама Visual Studio будет у Вас ругаться на наличие секции "rewrite" - у меня она эту секцию подчеркивала. В чем причина - я, честно говоря, не помню, но на самом сайте уже все работает на ура.
Успехов!

Худший ответ: Если есть доступ к панели управления IIS7, то создайте там сайт, пропишите в биндингах site2.com и site3.com
Потом клик на иконку HTTP Redirect, в панельке управления и заполните небольшую формочку (два чекбокса, инпут и дропдаун), и потом на кнопочку Apply.

формочка
Вопрос: Питон. Как изучать?

Лучший ответ: Тупо берите задачу и решайте. Гуглите, смотрите по книжкам, спрашивайте на форумах. Через пол года посмотрите на свой код, офигейте и напишите заново, в этот раз лучше :) Список задач можно тут посмотреть например.

Худший ответ: а с примерами программ (в том числе на выполнение) есть? а то у Лутца сухая теория, как документация.
Вопрос: Что почитать для повышения знаний логики и математики?

Лучший ответ: Хорошо бы поучить Алгоритмы. Кормен и Кнут - это уже для повышения квалификации, для начала отлично подойдет вот эта подборка:
algs4.cs.princeton.edu/home - Алгоритмы от Седжвевика и его одноименный курс на Coursera.
Достаточно доступно объясняет.
interactivepython.org/courselib/static/pythonds/in... - Тут с Python, а также интерактивные примеры.
Наконец статьи с хабра: habrahabr.ru/company/yandex/blog/208716
habrahabr.ru/post/101338
habrahabr.ru/post/133996
и много-много практики на www.programmr.com
Надеюсь вам поможет в нелегком пути! Удачи!

Худший ответ: Посмотрите вот эту книгу:
Структура и Интерпретация Компьютерных Программ - www.ozon.ru/context/detail/id/5322055
Вопрос: Sublime Text 3 на Mac OS не запоминает последние открытые файлы, как решить проблему?

Лучший ответ: Разобрался с проблемой. Дело в том, что на маке работаю вторую неделю, и я не знал, что при закрытии приложения на крестик, закрывается окно приложения, а не само приложение. Если закрывать приложение через cmd+q, то при следующем запуске откроются последние открытые файлы.

Худший ответ: А все же, существует ли возможность реализовать сохранение ранее открытых файлов, если sublime был закрыт через "крестик"?
Вопрос: Модификация провода наушников. Need help?

Лучший ответ: 1.Значит так, берем полый шнурок (в моем случае от бейджика), наушники и средство для делания дырок(я взял зажигалку, сразу скажу эстетика еще та с зажигалкой):

2. Берем шнурок и примиряем его по шее, таким образом, что бы наушники располагались удобно. Намечаем места и делаем отверстия:

3. Распускаем провод наушников почти до конца, оставляем до штекера 3-4 см, это та часть которая у нас будет торчать и втыкаться в плеер.

4. Обрезаем распущенную часть и продеваем обрезанные проводки наушников в петельки, которые мы сделали ранее. Так же замеряем длину от петельки до самого наушника, соблюдаем симметрию. Защищаем провода, припаиваем соблюдая полярность(там все обычно по цветам) и изолируем. 
 
5. Припаянные и заизолированные концы прячем в шнурки и обжимаем/декорируем чем либо. (Вам девушкам, видней как красоту наводить)
Как то так:
 
Удачи!

П.с.: За пунктуацию и грамматику, не отвечаю, ибо в пол второго ночи и после празднования свадьбы, мозг мой не ясен.

Худший ответ: Есть неплохие уши от Сони, вроде под ваше описание подходят. Ну а если принципиально сделать своими руками, то тут, ИМХО, без паяльника не обойтись. Развивать тему?
Вопрос: Как узнать кем и в каком коммите была удалена строка?

Лучший ответ: если вы знаете что было в этой строчке, тоgit log -S <string> path/to/file

Худший ответ: Есть там ещё git bisect .
Смысл такой: делаешь shell-скрипт с grep'ом по нужной строке, который возвращает 0 или 1, в зависимости от результата этого grep'а. А потом запускаешь git bisect с этим скриптом (как - найдешь в git bisect --help).
Вопрос: Как в CSS, SCSS лучше указывать цвета?

Лучший ответ: Лично мне не нравится подход именования цветов по контенту. Ну напишу я $bgHeader - а потом мне этот цвет надо использовать в футере - и тут меня эта штука начинает раздражать footer {color: $bgHeader} ? фигня какая-то
у любого сайта есть цветовая палитра, положим из 10 цветов, вот я их и задаю $c_gray, $c_gray_dark, $c_orange
А если нужно сменить цвет с оранжевого на голубой - то любая IDE поддерживает рефакторинг
ЗЫ: Много ли вы меняли полностью цветовую схему на противоположную в процессе разработки?

Худший ответ: По поводу RGB или Hex кому как удобнее, RGBA иногда бывает полезно, ну не всегда, переменные лучше называть, логично если у вас тема, или просто ваша верстка, например $bgHeader или $baseText, и не привязыватся к конкретному цвету типа $grey1, ведь в дальнейшем вы можете поменять цвет и придется менять переменные.
Мое мнение, что лучше использовать осмысленные названия, которые не придется менять в дальнейшем, а то что вы измените их св-ва не затронут ваш проект.