pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Зачем делают вот такую конструкцию?

Лучший ответ: Очень-крутые сайтоделы внизу своей чисто-HTML страницы добавляют «копирайт (с) Вася Пупкин 2000 год» – иначе они не круты.
Потом приходится менять год на следующий. И на следующий. Становится лень, и тут они открывают чудный мир PHP и копируют откуда-то код, автоматически подставляющий текущий год в страницу! &copy; Вася Пупкин <?php echo date('Y'); ?>
Вот отсюда всё и начинается..

Худший ответ: Способен. Используйте шаблонизатор.
Вопрос: Есть ли смысл для кеша html переходить на Redis?

Лучший ответ: А что там обновлять-то собственно?
Десяток функций которые уже 10 лет одинаково работают?
HTML кешировать лучше уж в файлы, а не забивать оперативку.
И делать это на уровне nginx, а не приложения. Хотя зависит от того как вообще работает.

Худший ответ: для кеша статики используйте Varnish
Вопрос: Тестирование верстки сайта в 4K без монитора 4K?

Лучший ответ: я не знаю ни одного человека, который бы пользовал 4к(и выше)-монитор в родном/полном разрешении, это же надо смотреть на монитор через телескоп.
их пользуют в hidpi-режиме, в котором разрешение эквивалентно fullhd. почитайте только дополнительно про оптимизацию графики под hidpi.

Худший ответ: 1) В Firefox не протестируешь никак, там дебаг адаптивной верстки сделан криво, нет масштабирования (по ходу нужно добавить баг в багтрекер ФФ)
2) Не путать физический размер экрана с CSS размером (последнйи можно посмотреть здесь screensiz.es  или dpi.lv пункт dppx)
3) В Хроме в режиме адаптивной верстки добаляете свой девайс и дебажите, там масштабирование есть, поєтому размер тестируемого єкрана может біть больше чем размер вашего
4) Не забіваем про https://www.w3schools.com/css/css_rwd_viewport.asp
5) Не забываем про vw, vh, vmin, vmax caniuse.com/#feat=viewport-units
Вопрос: Простой способ создания шаблона письма?

Лучший ответ: А ты пытался искать? Вот такое есть.
P.S: Я прежде чем создать свой шаблон (простенький) уйму статей перерыла и собрала из 10 свой 1.например *промежуточный вариант (требует доработок, но как для основы просто посмотреть)

Худший ответ: очень простой способ
регистрируешься на сервисе retail rocket (сервис популярных товаров в магазинах)
у них есть конструктор писем для рассылки ( не публичный)
он самый толковый из всех конструкторов что я видел
пилишь письмо, отправляешь для теста себе
выкачиваешь и меняешь что надо
Вопрос: Как достичь такого эффекта?

Лучший ответ: Все фотостоки заполнены таким эффектом: https://ru.depositphotos.com/18702551/stock-illust...
Сомневаюсь что есть панацея, как сделать этот эффект в пару кликов. В свое время я делал с помощью вектора, сейчас же использую готовые текстуры. Дело в том, что уникальность таких текстур не будет заметна, поэтому можно использовать что-то готовое по тегу "Абстрактные геометрические белый фон"
Ну или вот так - выбор больше
Потом соответственно менять цвет под нужный.

Худший ответ: Polygon, polygonal. Делать самому нету смысла, их куча уже готовых. Если делать, то пером, фигурой, ручками.
Вопрос: Как отследить состояние светофора?

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

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

Лучший ответ: Внимательно посмотрите на регулярку слева, и на маппинг справа:(.?.+?)(?:/([0-9]+))?/?$ -> index.php?pagename=$matches[1]&page=$matches[2]
Это - основное правило (rewrite rule) для страниц WordPress. Как оно работает:
- /page-name/ - страница первого уровня
- /page-name/sub-page-name/ - страница второго уровня (дочерняя, вложенная)
- /page-name/sub-page-name/sub-sub-page-name/ - страница третьего уровня (и это не предел)
В этих случае маппинг выдаст, соответственно:pagename=page-name
page=

pagename=page-name/sub-page-name
page=

pagename=page-name/sub-page-name/sub-sub-page-name
page=
и WP_Query будет запрашивать такие страницы. В вашем случае страница uslugi/asdfdsf, как дочерняя страницы uslugi – не существует. Отсюда и 404, все логично. Вот пример:
Если же ввести число, сработает другая часть регулярки:
- /page-name/123/
будет замаплен в:pagename=page-name
page=123
Чувствуете разницу? Вторая переменная, $page теперь заполнилась. Это нужно для разбивки контента страницы. WordPress позволяет вам разместить на странице какой-то длинный текст/контент, и разбить его на странички. Именно эта часть регулярки отвечает за постраничный вывод. 
Но поскольку в сам WP_Query отправляется запрос на получение контента страницы целиком, а постраничная разбивка происходит уже на лету, то и ответ 200 вполне логичен. Как и вывод одного и того же контента, независимо от номера страницы.
Вот пример такого запроса. Обратите внимание на установленные переменные:
Так работают стандартные rewrite rules WordPress. Что делать? Можно хукнуться в один из ранних хуков, например template_redirect, проверить контент на предмет постранички, и сделать редирект на 404. Но, зачем?

Худший ответ: такое иногда бывает при наличии правил окончания. add_rewrite_rule.
например если сделать add_rewrite_rule('21341234', 'EP_PAGES'); то адрес sitename.ru/uslugi/21341234 - будет отдавать 200 и показывать sitename.ru/uslugi/
такова логика по умолчанию. ее можно привести в порядок, но для этого нужно добавлять механику обработки таких окончаний и все необходимые исключения.
Вопрос: Как правильно организовать такую БД?

Лучший ответ: Если нет проблем с местом - я бы хранил все.
Мало ли. Для разборок может пригодится.
А так - эти объемы для современных СУБД ерунда, семечки.

Худший ответ: Обычно для таких задач организую отдельную таблицу для импорта данных. Запихиваю туда всё, что пришло извне. Затем обрабатываю в отдельном потоке (нескольких потоках): записываю только нужные данные в основные таблицы. При этом ставлю флаг или  сообщение об ошибке у обработанных записей таблицы импорта. Потом проще разобраться, что обработалось, а что нет и почему. И не придётся повторно загружать внешние файлы.
Когда процесс отлажен, ставлю периодическую задачу на подчистку (или архивацию, если нужна будет сверка) старых данных в таблице импорта. Можно запускать в пром.
Вопрос: Переезд на laravel?

Лучший ответ: Как это делал я:
1) Сделал в базе поле пароля Nullable
2) Создал временное поле в БД password_md5
3) Во время авторизации авторизировал пользователя через связку username / password, если авторизация не прошла - username / password_md5.
4) Если связка username / password_md5 прошла, при этом поле password пустое - задавал полю password bcrypt значение введенного пароля
В течении нескольких месяцев база практически полностью наполнилась реальными паролями в bcrypt. Осталось несколько десятков неактивных юзеров, которым была выслана просьба поменять пароль, с отдельной страничкой, проверяющей старый пароль по полю password_md5 и задающей новый password.
Вот таким вот образом была мигрирована старая база. Извращение, но иначе - никак.
Удачи, надеюсь помог :)

Худший ответ: Отправте письма с текстом
В целях безопасности мы изменили шифрование паролей и тп и тд. Просьба, поменяйте свой пароль. И вышлите ссылку на сброс пароля.
Вопрос: Что быстрее изучается web или android направления?

Лучший ответ: JAVA по сложности как все "web-языки" вместе взятые, если не сложнее.
Это совсем разные уровни знаний.
Хотя с современными инструментами и гуглом ничего невозможного нет.

Худший ответ: Быстрее будет с Android. Универсальнее будет с JS.
P.S. Java не сложно. JS мир не страшен, когда знаешь сам язык. Выбрать первым языком JS - не лучший путь, но если нужно быстро работу найти...
Вопрос: Верстка форм с помощью flexbox?

Лучший ответ: используйте CSS Grid, и забудьте про flexbox, он хорошо, но для таких задач подходит плохо

Худший ответ: Скорее всего здесь сочетения нескольких flexbox контейнеров. То есть есть основной, с flex-direction: column, в который помещаются еще два контейнера: первый для обеих верхних форм, второй для кнопки, которые уже расположены вертикально. В этом контейнере для форм flex-direction: row, и плюс еще два контейнера внутри - один для левой части с тремя формами, и один для правой, для формы сообщений.
Вопрос: Как вы используете docker для разработки в Windows?

Лучший ответ: Итак, нашел не самое элегантное решение, но вполне рабочее:
ред. Оказывается не совсем рабочее. 
После перезапуска виртуалки необходимо заново выгружать все файле проекта, при этом заранее исправавив права доступа к /c/Users
Оставляю пока тут, может у кого-то появятся идеи
1. Отключаем общие папки в настройках виртуальной машины. 
2. Включим sftp для виртуальной машины: # Открываем машину в virtualbox и редактирем конфиг ssh сервера
vi /usr/local/etc/ssh/sshd_config
# и добавить строку
Subsytem sftp internal-sftp
# для тех, кто не работал в vi
# сначала жмем i
# затем добавляем нужную строку 
# жмем ESC, жмем :
# вводим (внизу слева) wq жмем enter
3. Перезапускаем виртуалку, чтоб общие папки более не были доступны и перезапустился сервер ssh (я не нашел как его перезапусить по типу service sshd restart)
4. Создадим нужный путь:mkdir -p /c/Users
chown 0777 /c/Users -R
5. Сгенерируем ppk ключ для подключения.
Надо скоримть программе puttygen ключ %userprofile%\.docker\machine\machines\default\id_rsaДалее действия выполняются в Phpstrom
6. Настраиваем подключение в шторме к виртуалке по sftp, указав сгенерированный в п.5 ppk-файл. Имя пользователя docker. Заодинм укажем, что файлы должны загружаться автоматически.
7. Настраиваем маппинг файлов. Обратите внимание, что local path и deployment path должны совпадать
8. Указываем, что мы хотим менять права на загруженных файлах и папках на 0777 автоматически при загрузке.
На этом все. 
Теперь можно вносить изменения в проект, которые будут автоматически загружены в docker виртуалку по sftp. 
Docker при этом крутится достаточно быстро - dev окружение symfony грузится за 60-150 мс.
Больше нам не потребуется заходить в саму виртуалку, все будет так же работать через docker консоль.

Худший ответ: Почему вы используете ОТКЛюченный шардинг? Удобней ведь включить папочку общую и не надо никуда заливать код.
Вопрос: Где задеплоить Laravel проект?

Лучший ответ: Вариант 1Берете любой VPS хостинг.Засовываете туда bash скрипт на 20 строк со списком команд....Профит
Вариант 2Берете любой VPS хостинг.Засовываете туда какой-нибудь CI движок....Профит

Худший ответ: Берете любой VPS,  цепляете хук от Git и настраиваете деплой через Capistrano.
Вопрос: Как развернуть два сайта на одном сервере?

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

Худший ответ: Сайты могут обслуживаться:
на разных поддоменах/доменах: app1.example.com, app2.example.com
на разных префиксах в пути ( т.е. /app1/ , /app2/ )
на разных портах
Обычно сайты сидят на разных доменах или поддоменах.
Вопрос: Варианты менеджмента обработки состояний запросов в Redux?

Лучший ответ: В плане так их надо передать в редюсер для ошибок, а в компоненте следить за изменением этого редюсера...
Не надо. Ошибку и состояние загрузки можно обрабатывать в том же редьюсере, что и токен.const initialState = {
  isFetching: false,
  token: null,
  error: null,
};

function auth(initialState, action) {
  switch(action.type) {
    case LOGIN_REQUEST:
      return {
        ...state,
        isFetching: true,
        error: null,
      };

    case LOGIN_SUCCEEDED:
      return {
        ...state,
        isFetching: false,
        token: action.payload,
      };

    case LOGIN_FAILED:
      return {
        ...state,
        isFetching: false,
        error: action.payload,
      };

    default:
      return state;
  }
}Будет ли правильным делать запросы из компонента?
Не будет.Ведь так при ошибке мы может её сразу добавить в стейт errors компонента и всё. 
Не ясно зачем вам вообще добавлять ошибку в state.const mapStateToProps = state => ({
  error: loginErrorSelector(state),
});render() {
  const { error } = this.props;

  if (error) return <TryAgain error={error} action={login} />;
  
  return ( /* ... */ );
}

Худший ответ: Антон Спирин, отличный пример показал. Стоит добавить что удобно создавать данные экшены через специальный миддлвэр - promise-middleware. В который ты передашь только ключевое слово LOGIN и сам промис запроса, а на выходе получишь вызов редюсеров, как описал Антон
Вопрос: Как запретить скролл body на iPhone?

Лучший ответ: Вопрос старый, но тому кто гуглить будет, думаю окажется полезным.
Для таких случаев используйте библиотеку scroll-lock.
Так же прочитайте эту секцию, там описана проблема и решение со скроллом на iOS.

Худший ответ: overflow: hidden;
height: 100vh;
или, если ios10+#popup.active:not {
display: none;
}
Вопрос: Легальный способ работать за криптовалюту в РФ?

Лучший ответ: есть возможность проводить крипту на ИП, посредством сервиса pokupo.ru.
 Создаем ссылку на оплату - оплачиваем криптой. Получаем отчеты агента о реализации сертификатов на товары /услуги, оказанные вами - получаем выплату на расчетный счет ИП или компании в РФ.

Худший ответ: увы нет
Вопрос: Могут ли 2 запроса выполниться одновременно?

Лучший ответ: А почему бы не написать один запрос и не париться по поводу успеет оно там выполниться или нет? Как-то так:UPDATE Users SET
  balance = balance - 100
WHERE id = 5 AND balance >= 100

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

Лучший ответ: 1. В строковой переменной или строковом буфере собрать тело команды, экранируя параметры, если это нужно.
2. Если это обёрнутый string, преобразовать в const char* — и пошёл.std::string command;
char data1 = 'F';
char data2 = 'C';
command = std::string("color ") + data1 + data2;
system(command.c_str());

Худший ответ: Да очень просто - "передать этой функции значение строки" используя новую строковую переменную.
Вопрос: Сервис для изучения английского по субтитрам фильмов (была статья на Хабре несколько лет назад). Как он назывался?

Лучший ответ: Если не знаете про 
https://ororo.tv/ru
 то ознакомтесь :)

Худший ответ: Сервис "Wordsfromtext"
wordsfromtext.com/about
Вопрос: Управление микроконтроллером через интернет?

Лучший ответ: Веб-сервер выдает не только html страницы. Протокол HTTP умеет передавать даже файлы.
Лучше найти на Android такое приложение, которое умеет отдавать произвольные POST запросы.
Если нашли, то на сервере разворачиваете программу, которая будет ждать POST запроса, в котором будет строка с именем команды. Типа такого:<?php
if ( ! isset ( $_POST['command'] ) ){
    return;
}
else
{
    if $_POST['command'] == 'имя_команды'
    {
        // здесь обрабатываем команду
    }
}
?>
Далее сервер анализирует её, осознает какую команду он должен передать и вот тут самое сложное.
Есть вариант, чтобы МК также выступал в роли сервера. Ставим его на прослушивание в какой-нибудь свободный порт и потом наш PHP-код, проанализировав команду, отправляет ему POST-запрос, чтобы МК среагировал и сделал что требуется. Пример:$url = 'http://localhost:1337/';
$data = array('command' => 'имя_команды');
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data)
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context); // это необязательно. но можно с помощью этого проверить, выполнил ли МК задачу.
if ($result === FALSE) { /* обрабатываем ошибку, если будет */ }
var_dump($result);
Здесь могу дико ошибаться, потому что в микроконтроллерах не разбираюсь.
Ну в общем вот вам идея -- организовать связь через POST-запросы.

Худший ответ:  Я все правильно представляю? 
Нет )Как организовать связь с микроконтроллером через интернет
Тяжелый случай объяснить кто сам понимает очень мало )))
Обрати внимание на ссылку www.litsovet.ru/index.php/material.read?material_i....
w5500 - это только .... маленькая микросхема  в огромной системе. Она помогает уменьшить затраты на программирование всей системы.
Вопрос: Установка нескольких ОС на одну машину?

Лучший ответ: Сначала винду, потом линуху. Линуховые инсталяторы видят другие ОС на компе и настраивают GRUB на их загрузку, а винда затирает чужие загрузчики в MBR.
Но разумней поставить Ubuntu GNU/Linux в качестве основной системы, а зоопарк развести в виртуалках(kvm и virt-manager вам в помощь).

Худший ответ: Порядок очень важен
Windows использует MBR, а Linux GRUB.
Установка MBRповерх GRUB затирает последний. Но GRUB знает как работать с MBR, поэтому ставят последним
7 (MBR) -> 8.1 (MBR) -> 10 (MBR) -> ubuntu (GRUB) -> centos (GRUB)
Вопрос: Если пользователь может загружать файлы на сайт — как лучше мониторить количество файлов и объем диск?

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

Худший ответ: Каждый раз выполнять подсчет перед загрузкой - будет медленно,
Сделать sum всех файлов юзера в базе это долго? (Никто не считает файлы физические каждый раз, тем более в высоконагруженных системах они лежат не на одном сервере, а на куче)инкрементировать значение в базе после каждого загруженного или удаленного файла - есть вероятность что что-то пойдет не так и значение собьется.
Как же все сайты вообще работают тогда.
Других способов-то как бы и нет.
Вопрос: Как правильней сохранять состояние БД в docker?

Лучший ответ: -v /mysql:/var/lib/mysql  это вполне по феншую
Я делаю что-то вроде этого:
-  в контейнере бд -v ./mysql:/var/lib/mysql 
-  в контейнере веб сервера -v ./www:/var/www/html
-  в случае необходимости сборки собственных образов держу в папке build докерфайлы и нужные им данные.
И в одной папке с проектом у меня папка с базой данных, папка со скриптами/исходниками и другими файловыми данными и папка с образами.
Все аккуратно лежит рядышком, запускается и гасится через docker-compose в одном комплексе.
Смысла делать именнованные docker volumes я не понял, тоже самое, только будет лежать в папке /var/lib/docker. Единственный резон это если том с данными используется сразу несколькими контейнерами, и по имени можно сразу понять что это такое.

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

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

Худший ответ: Есть  какие то донглы для сброса  паролей. Восстановить с помощь  R-studio  и т п.
Вопрос: Какой прогой лучше оптимизировать комп?

Лучший ответ: Windows Installer.
Не ставить всё подряд - лучший выбор.

Худший ответ: Мне нравится AusLogics BootSpeed
Вопрос: Есть онлайн сервис по анализу данных?

Лучший ответ: www.wolframalpha.com может подсказать что за последовательность на входе

Худший ответ: Нейронная сеть достаточной сложности может «подстроиться» под любую функцию, обучаясь на данных. Это даст возможность по новым входным данным прогнозировать выходные. Но вот красивую и лаконичную формулу так не получить.
Вопрос: Как грамотно управлять размером человеческого ресурса в ИТ?

Лучший ответ: Вопрос не имеет никакого отношения к ИТ. Ответ - планирование, понимание экономики и управления проектами. Как в том анекдоте - Кот достал мышей. Пришли мыши к старой крысе и спрашивают как избавиться от кота - "А превратитесь вы все в котов!". Мыши обрадовались, а потом думают, а как?..." Вот и вам всего навсего нужно стать грамотным управленцем. Которых, скажу по секрету, в стране можно посчитать достаточно быстро.

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

Лучший ответ: Сложить все веса. Их сумма это 100%, «единица».
Взять случайное число от 0 до 1.
Спроецировать на ваш диапазон, посмотреть, куда попали.$sum = array_sum($a);
$rnd = rand() / getrandmax(); // от 0 до 1
$runningSum = 0;
foreach($a as $k => $v) {
  $runningSum += $v / $sum;
  if ($runningSum >= $rnd) {
    $key = $k;
    break;
  }
}
if (!$key) $key = $k;

echo "Выпало: " . $key . PHP_EOL;

Худший ответ: Приводим коэффициенты к целым числам пропорционально так, чтобы минимальный коэффициент равнялся единице, остальные округляем до единиц. Таким образом получаем на выходе массив с целыми числами, где отношения в пропорции элементов друг к другу будут близкими к изначальным. Далее на основе этого промежуточного массива генерируем новый, с диапазонами, для первого элемента от 0 до его значения, для каждого последующего от суммы всех предыдущих значений до сумма + текущее значение. Таким образом весь массив диапазонами покрывает значения от 0 до суммы всех величин из первого промежуточного массива, которую обозначим как S. Далее используем только второй массив с диапазонами, для каждого элемента выборки генерим рандомное число R от 0 до S, и находим ключ согласно тому диапазону, куда в каждой итерации попадает R.
По идее данный алгоритм идентичен варианту Дмитрия, но эффективен по части использования памяти. Опять же, его тоже можно оптимизировать. :)
ЗЫ: Те же яйца, но в профиль предложил Сергей Соколов
Вопрос: Как с помощью Python создать html таблицу?

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

Худший ответ: решено с помощью jinja2
код скриптаfrom jinja2 import FileSystemLoader, Environment
import os

curr_dir = os.path.dirname(os.path.abspath(__file__)) #указываем что шаблон находится в корне 
env = Environment(loader=FileSystemLoader(curr_dir))
template = env.get_template('1.html')


q=[] # список кокторый заполняется

...

with open("index.html", "w", encoding='utf-8') as f:
    f.write(template.render(q=q))
код шаблона{% for i in q%}
    <tr>
        <td><a href="{{i[0]}}">{{i[0]}}</a></td>
        <td>{{i[1]}}</td>
        <td>{{i[2]}}</td>
        <td>{{i[3]}}</td>
    </tr>
{%endfor%}
спасибо за помощь Владимир Куц
Вопрос: Как удалить папку Яндекс. Диск из панели проводника?

Лучший ответ: Нажми win+r
напиши regedit и нажми enter
откроется реестрт. нажми ctrl+f и вставь этот путь:
HKEY_CLASSES_ROOT\CLSID\{11C9DD7B-CCF5-4502-90A1-FEE8889976D5}
потом нажми два раза на  System.IsPinnedToNameSpaceTree
и введи значени 0 вместо 1.
и нажми ок

Худший ответ: Удалить яндекс диск? Не? В реестре поищите — эти папки через реестр прописываются.
Вопрос: Каким софтом в РФ пользуются ТСЖ?

Лучший ответ: Да разным.
Полно и самописа.
Мне, к примеру, заказывали доработу уже существующего (кем-то там до меня созданного) софта.
Судя по лохматости его - ему лет 20 не меньше.
;)

Худший ответ: Квартплата 24, мне кажетсч самый достойный софт у них.