Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Удаленный доступ к офису через VPN?

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

Худший ответ:
Я сталкивался с такой ситуацией, что не поднималось больше 1 туннеля L2TP / IPsec с одного внешнего айпи адреса.
Компьютеры за одним роутером? в одной сети?
Если да, попробуйте на один из компов раздать инет с телефона и попробовать подключиться
Вопрос: Как правильно обновлять данные react после обращения к api?

Лучший ответ:
Изменения в UI до прихода данных с сервера - тн оптимистический подход (Optimistic UI updates).
Советую следовать простому правилу: делать оптимистичные обновления в интерфейсе всегда, кроме случаев когда это критично для пользовательских сценариев(очень редко когда и где нужно). В таком случае ваше приложение будет ощущаться намного более отзывчивым, приятным и быстрым. Ошибки и откаты можно сделать потом, после прихода с сервера ответа с ошибкой.
Советую погуглить "Optimistic UI updates", статей на этот счёт в разном контексте огромное число.

Худший ответ:
Пользователь удаляет один элемент, идет запрос DELETE. После удаления, стоит ли снова запросить данные и уже их отобразить или достаточно удалить элемент из state ?Нужно ориентироваться на статус ответа с бэкенда, если OK, то смело удаляйте, не нужно запрашивать данные еще раз, если нет то пишите об ошибке(в зависимости от кода).
Я пока встречал на проектах только постоянный запрос данных, после каждой операции с бэком, PUT, DELETE, POST, правильный ли это подход? Т.е. отправляется запрос, с сервера приходит уведомление, что элемент был успешно удалён и вы делаете новый запрос на получение данных? В целом так можно делать, но это лишняя нагрузка на бд и сервер, а для пользователя лишние сетевые задержки, конкретно в этом случае, хз зачем так делать.
Вопрос: Итерационное вычисление больших степеней числа по цифрам?

Лучший ответ:
Есть неалгоритмический способ ускорить ваше решение - храните в каждой ячейке массива не одну цифру - а несколько. Фактически, проводите вычисления в системе счисления 10000, вместо 10. Или даже 1000000000 - но тогда надо временные вычисления (умножение) делать в int64_t, чтобы переполнения не было.

Еше, при выводе такого числа надо выводить ведущие нули для всех ячеек, кроме самой старшей. 

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

Но в таком виде алгоритм будет даже медленнее на больших числах. Ему потребуется O(log K) умножений большого на большое (которое делается за O(L^2), где L -  длина числа, которая будет O(K)). Итоговая сложность этого алгорима будет O(K^2 log K). 

Когда как ваше текущее решение делает K коротких умножений (Каждое - O(K)) - всего O(k^2) операций. Но если применять быстрое умножение длинных чисел через быстрое преобразование Фурье то итоговая сложность будет O(K log^2 K log log K). Для power=100 особо вы разницы не почуствуете, даже медленнее будет, но вот при каких-нибудь 10000 уже будет заметно быстрее.

Советую попробовать обычные оптимизации, прежде чем браться за преобразование фурье.

Еще, вместо хранения конца числа в виде особого значения 10 - вам стоит отдельно хранить длину числа в какой-то переменной с говорящим названием (хотя бы len). Тогда код будет сильно читабельнее.

Худший ответ:
Алгоритмы быстрого возведения в степень
Вопрос: Где искать вирус, подбирающий пароли exim?

Лучший ответ:
Почему вирус-то ? По логу же видно что из вне пытаются соединиться.

fail2ban свежий с "прогрессивным" баном быстро заблокирует ip вражин сначала на часы, потом на дни а потом и на месяцы :)

Если нужно то правила fail2ban для exim  для параноиков скину :)

Худший ответ:
Блин, да Вас просто кто-то атакует, только и всего. Я таких периодически отстреливаю, правда я глушу вручную - сразу и навсегда. Могу списком для ipset поделиться.
Вопрос: Как это сверстать, очень сложный дизайн карточки?

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

У меня бы ТАКОЕ умерло еще на стадии макета... 
А вообще, самое простое - тремя div это собрать с бэкграундом, порезав картинку. Левая часть, верхняя часть и нижняя часть. У верхней сделать отрицательный margin а у конnертного блока bg-repeat. Но такой подход сложно будет назвать адаптивным. Куча ограничений.

Худший ответ:
Нижнюю часть в SVG сделать, а все что сверху через стили пробовать.
Вопрос: Выдается ошибка: Для нестатического поля, метода или свойства «GameObject.transform» требуется ссылка на объект?

Лучший ответ:
Заменить GameObject на gameObject,
И начать с изучения сишарпа чтобы понять что пошло не так.

Худший ответ:
Либо все GameObject заменить на gameObject, либо создать ссылку на объект и вставить его через инспектор и так же заменить GameObject на имя этого объекта.
Вопрос: Стоит ли изучать Machine Learning если хочется создавать видеоигры?

Лучший ответ:
Возьми полистай пару книжек по МЛ и ИИ ("грокаем нейронные сети" выглядит доступно для начинающих), попробуй написать свой простенький ИИ, немного углубись в историю вопроса

1. Избавишься от паранои
2. Поймёшь какие/как интересные вещи можно делать при помощи ИИ
3. Может быть применишь даже при создании игр.

Худший ответ:
Не волнуйтесь, специалистов ML ИИ заменит первым=). А ещё раньше все машины и самолёты будут исключительно с автопилотами, потому что водителей заменить проще, чем программистов.
Программист должен быть готов постоянно учиться, если вы не готовы, то идите лучше водителем, они тоже не скоро будут вытеснены ИИ. На наш век любой работы хватит. Даже лифтёром или телеграфистом, я уверен, еще можно где-нибудь устроиться.
Нравится ML - занимайтесь им, вы же в индустрии, вы в одиночку пилите инди-игры? Серьёзные игры пишут большая команда. Если б вы хотели быть строителем, то вы вполне могли бы не разбираться в устройстве черепичной кровли, если достаточно хорошо кладёте кирпич или штукатурите. Все работы хороши, выбирай на вкус те, в которых интересно будет развиваться.
Вопрос: Arduino без внешнего питания начинает постоянно перезапускать код, что делать?

Лучший ответ:
А после отключения USB ардуинка от чего то продолжает питаться? Если нет - то как она будет продолжать работать? Вы отключаете ардуинку и само собой светильник будет продолжать светиться тем цветом, который был последним.

Худший ответ:
Схема цепей питания контроллера Arduino UNO. 
(на других платах Ардуино данный вопрос решается аналогичным способом)


По схеме видно что питание контроллера в случае подключения от USB идет через диод D1.
В Случае питания от VIN (что правильно) будет идти через стабилизатор IC2 (LM1117).

Если ТОЧНО БП дает +5в. то питание на Ардуину "можно" подать на вывод "+5V" Ардуины. (но будут проблемы при заливке прошивки в контроллер. Внешнее питание желательно отключать во время прошивки)
Если больше (+9в, +12в)  ТО проверить стабилизатор LM1117 и при необходимости заменить.
Вопрос: Собираюсь делать сайты на заказ. Как делать это безопасно, чтобы не кинули?

Лучший ответ:
Биржа в качестве гаранта, как еще один из вариантов

Худший ответ:
Предоплата 100%
Вопрос: Как создать счетчик кликов для каждого элемента?

Лучший ответ:
Можно использовать делегирование событий (гуглите).

Ловить клики выше в DOM-дереве на каком-то общем родителе.
Можно даже сами элементы использовать в качестве ключей в Map для подсчёта кликов.

Худший ответ:
Конечно, addEventListener
Вопрос: На всех хостингах по умолчанию работает mail?

Лучший ответ:
функция mail работает у многих. но проблема в том, что ей мало куда можно отправить почту. 

курите тему PHP + SMTP. например, mailer или phpmailer

Худший ответ:
Функция mail() в php вызывает какую-то приблуду из операционки, которая ответственна за отправку почты. Например sendmail. (в php.ini можно выбрать какую имено, если их в ОС несколько). 
Дальше все зависит от того, настроили ли администраторы эту почтовую штуку или не настроили, или подобной штуки вообще в системе нет (привет win хостингам). 

Если вдруг она работает (что не редкость, хотя работает не везде), и вам удалось через mail() отправить  hello world на свой ящик - это ещё не все. Вас ждёт отдельный вынос мозга при попытке добавить в письмо изображения или другие вложения. 

Почитайте минут 20 википедию, чтоб понять как вообще работает почта, а потом берите какую нибудь высокоуровневую обертку (типа PhpMailer'а) которая возьмёт всю грязную работу на себя, и спрячет от вас все кишки.
Вопрос: В чём разница в направлениях подготовки по информационной безопасности в ВУЗах России?

Лучший ответ:
Автор, погуглите темы дипломов или курсовых этих специальностей, многое станет ясно. Это довольно точный способ определить чем занимаются на специальности (отбросив всю маркетинговую чушь о них), жаль я допёр до него спустя 10 лет после выпуска. Вдобавок по научным руководителям поймете кто из профессуры специализируется на том, что вам интересно и в каком вузе они обитают. Удачи!

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

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

Однако вряд ли кому нужна сомнительная недоделанная игра без команды разработки, то есть без тебя. Так что основную ценность представляешь как раз ты, а тебя у тебя украсть не могут. И не будь уверен, что игра обязательно сразу принесёт миллионы. Шанс есть, но это далеко не факт.

К слову, идеи вообще никак защитить нельзя, даже авторским правом. Так что если компания посмотрит на твою игру и сделает (с нуля) примерно такую же (типа клон), то это абсолютно законно.

Худший ответ:
1. Естественно, твоё имя должно быть в титрах в игре, и исходники издателю давать нельзя
2. Стать ИП (это можно сделать даже в 14, если родители разрешат)
3. Сделать сайт об игре (может понадобиться для регистрации знака)
4. Зарегистрировать логотип и название. (ещё можно в других странах зарегать, но тут я хз https://journal.tinkoff.ru/world-of-trademark/)
5. Ещё есть смысл нанять юриста, который на подобных вещах специализируется. Потом мб он ещё пригодится, если действительно украдут и придётся судиться.

Всё это не дёшево, но по идее окупится (если игра не совсем треш)
В общем взвешивай риски, на сколько вероятно что у тебя игру "украдут" (кому это вообще выгодно), и какие потери будут у тебя в случае этого.

А ещё авторские права неотчуждимы, и ты уже по факту создания произведения являешься его автором, и можешь своё право защищать в суде (даже если это нигде не зарегистрировано на бумаге)

А ну и да: идеи ничего не стоят, а недоделанную игру, даже с исходниками, не имеет смысла красть.
Вопрос: Как ускорить Curl парсер?

Лучший ответ:
Сам по себе curl работает очень быстро. Но есть время ответа сервера. И если он отвечает 8 секунд, то значит это минимальное время выполнения вашего кода. На уровне PHP кода вы ни как это не ускорите.

Но нужно разбираться, действительно ли сервис отвечает 8 секунд и если да, то почему. На задачах парсинга часто сервис который приходится парсить отслеживает IP адреса и при большом количестве запросов начинает увеличиваться время отклика персонально для вас (благо в конфиге nginx это 1 строка). И в таких случае необходимо начать использовать анонимные прокси.

Худший ответ:
Многопоточное скачивание в cURL на PHP multiCurl
Вопрос: Как запустить задачу меньше чем за 1 мс?

Лучший ответ:
Такие задачи обычно делают на языке Си и на микро-контроллерах или на хитрых операционках типа RTOS. 

C# с его уборкой мусора может внести в поток большие погрешности. Ну вобщем зависит сильно от задачи. Для игр должно хватать шарпов. Для чего-то серъезного скорее всего нет.

Худший ответ:
микроконтроллер?
Вопрос: Какой хороший, бесплатный антивирус поставить на ноутбук windows 10?

Лучший ответ:
В виндовс 10 уже есть встроенный антивирус

Худший ответ:
Объективно из бесплатных сейчас оптимален - Касперский Фри. 
В Десятке всегда есть свой.

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

Самая частая зараза ходит через флешки, скрывая их истинное содержимое в скрытую папку и оставляя ярлык для запуска вредоносного скрипта.

Для борьбы с такими случайными залетными гостями (весьма редкими теперь), а также с большинством шифровальщиков - достаточно вместо полноценного антивиря (жрущего кучу ресурсов, что на слабых машинах более чем чувствительно) держать проактивную защиту типа бесплатной версии OSArmor 1.4.3 (ее, правда, теперь еще поискать в интернетах). 

А в комплекте с Anvir Task Manager'ом - это уже мощная и простая система защиты от подавляющего большинства современных зловредов.

И это все даже никакого самоограничения в правах не требует.
Вопрос: Как использовать RDP по одному адресу и в локалке и по интернету?

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

Худший ответ:
есть. надо на роутере настроить обратный NAT
Вопрос: Стоит ли уходить в веб с Python?

Лучший ответ:
Можно, все можно
Начинать с веб (основ) лучше чем начинать с узкой специализации реализации бота (тем более там по хардкору сразу в асинхронное программирование новичка бросает), причем лучше потрогать без высокоуровневых фреймворков как серверную часть и базы данных так и клиентскую, причем в обоих ипостасях, и html+css и javascript.

Язык программирования и задачи, чаще всего стоят максимально друг от друга, и связь между ними исключительно в том какие фреймворки для каких языков под какие задачи уже написаны, но как я надеюсь все понимают, можно обойтись и без высокоуровневых решений, а низкоуровневые (не придется разбирать http заголовки или самому рисовать окна UI) есть для всех языков.

Худший ответ:
Можно смело брать готовые решения, а потом углубляться на более сложный уровень, задаваясь вопросом "А как это устроено?". Допустим, запустить тестовый сервер с Hello World на том же Flask довольно просто, следуя тем же руководствам из интернета. И изучать дальше: как работает декоратор @app? Как устроен render_template? Можно ли вывести словарь в виде application/json, а не plain/text? Как задать конфигурацию с помощью объекта? Как задать http заголовки для ответа? И так далее. :) Аналогично с ботами, ORM и чем угодно вообще.

Такой путь может быть интереснее, чем "А сейчас мы напишем свой веб-сервер с нуля с помощью стандартной библиотеки socket", потому что не отпугивает излишней сложностью.
Вопрос: Как правильно формировать структуру сайта?

Лучший ответ:
Должен быть базовый layout (где есть блоки со статичным контентом) и файлы динамических блоков, которые его расширяют - так придется единожды менять футер/хедер/меню и по потребности - страницы с контентом. Это очень удобно реализовано в шаблонизаторах вроде blade и twig (они на 80% похожи)

Худший ответ:
Не надо ничего придумывать. 
МВС модель давно придумана и успешно функционирует.
Берешь Ларавель и изучаешь.
Вопрос: Съезжает ли индексы после удаления записей?

Лучший ответ:
Индексы, будучи созданными один раз - остаются навечно.
Если из таблицы удалены данные (50%) - то примерно
столько - же данных будет удалено соотвественно и из индекса.

Дисковое пространство которое занимает индекс - обычно не освобождается.
Тут надо читать документацию по конкретной БД. Oracle может вести себя так, 
Postgres - как-то иначе.

P.S. Интересная терминология. Съезжает...
P.P.S Лётчик?

Худший ответ:
PostgreSQL: индексы и корреляция данных.
REINDEX.
Параметры хранения индекса.
Вопрос: Вопрос про многопоточность python, что лучше, больше ОЗУ или больше ядер?

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

Т.е. скорее всего тебе хватит двух ядер даже в худшем случае.

p.s. оперативная память - это то что любит питон, будет жрать как не в себя, поэтому если это прямо сейчас надо решать - бери больше оперативной памяти

Но правильно - брать больше ресурсов именно в тот момент, когда это действительно нужно, а стартовую оценку нужно брать с тестов своего кода на основе текущего размера своей аудитории и их активности.

p.p.s. тут недавно человек спрашивал про проблемы нагруженного бота (он зачем то удалил вопрос, не помню какая библиотека была), там из-за ошибки в реализации библиотеки на каждое новое сообщение выдавался запрос одного последнего сообщения через тяжелый запрос поиска сообщений от и до (указывался один и тот же id), при этом библиотека была не асинхронная, при большой нагрузке бот отправлял 100500 таких запросов и сервер отказывал в обработке... т.е. первое о чем нужно беспокоиться в нагрузке - это вот такие баги а не нехватка сервера

в нормальной ситуации, даже большое telegram сообщество сможет обработать слабейшая малинка.

Худший ответ:
Ядра. В этой ситуации. В крайнем случае swap подключите. 
А почему только такой выбор? На хостингах обычно он намного больше)
Вопрос: Как подключиться к сайту Binance и получать ещё неопубликованные новости?

Лучший ответ:
1.Идете на Бинанс, находите раздел посвященный API и изучаете
2.Настраиваете авторизацию, если нужно
2.Качаете requests, читаете доки к ней
3.Подключаетесь к API с использованием соответствующих данных для авторизации (если они нужны)
4.Шлете запросы.

Это при условии, что действительно есть api и он открыт для использования.
Вполне может быть, что если даже api и есть, то использовать его могут только внутренние сервисы, к которым относятся и боты, публикующие новости на указанных платформах.
Либо же api нет вовсе, а новости публикуются с помощью вебхуков

Худший ответ:
Вы про новости о предстоящем листинге, или об уже добавленной криптовалюте? 

В любом случае вам нужно лезть в API не за новостями, а за списком токенов.
Чаще всего там появляются токены, но торги по ним еще не запущены. Это значит вам нужно брать имя токена и покупать на другой бирже. До бинанса токены обычно листят байбит и MEXC
Вопрос: Где или как можно изучить openvpn?

Лучший ответ:
Документации на их сайте должно хватать (Сайт). 

Если вас интересуют подробности не входящие в документацию, то браузер вам в помощь)

Худший ответ:
На офф сайте ovpn...
А что понимать - это просто один из протоколов ВПНа... шифруется сертификатами
Вопрос: Как решить проблемы с pyautogui?

Лучший ответ:
Версию Python понижать не нужно. Нужно понизить версию самого модуля pyautogui
Это можно сделать с помощью этой команды: pip install PyAutoGUI==0.9.52

Видимо в версии 0.9.53 кто-то где-то накосячил.

Худший ответ:
Обновить pyscreeze.
pip install -U pyscreeze

А вообще лучше версию питона до нормальной снизить
Вопрос: Существует ли способ быстро запускать текущий файл в среде NodeJS?

Лучший ответ:
1. В корне проекта создайте папку .vscode (если ее еще нет)
2. Создайте в папке .vscode файл tasks.json со следующим содержимым:{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run current file in node.js",
      "type": "shell",
      "command": "node",
      "args": ["${file}"]
    }
  ]
}Если такой файл уже есть, то просто дополните массив tasks содержимым выше.
3. Нажмите Ctrl+Shift+P и введите команду Preferences: Open Keyboard Shortcuts (JSON), должен открыться файл keybindings.json, добавьте в конец массива следующий объект:{
  "key": "alt+f5",
  "command": "workbench.action.tasks.runTask",
  "args": "Run current file in node.js",
  "when": "editorTextFocus && editorLangId == javascript"
}

Все, теперь по Alt+F5 в тектовом редакторе будет запускаться текущий файл нодой, если он js файл

Худший ответ:
https://www.npmjs.com/package/nodemon

Для фронтенда vitejs

В phpshtorm есть запуск скриптов по f10
Что тот аналогичное можно сделать и в notepad++
Вопрос: Почему SELECT CASE WHEN возвращает только первое значение?

Лучший ответ:
А вот если заглянуть в документацию...
Day 	full capitalized day name (blank-padded to 9 chars)
Действительно непонятно, почему же так срабатывает сравнение двух разных строк
'monday' = 'monday   '

Что попросили у to_char - то вполне ожидаемо и получили. При том, в чём вообще смысл получать название дня недели, а не его номер? А вдруг Day окажется locale-specific штукой?

Худший ответ:
SELECT
    AVG(value) AS avg_value,
    CASE WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'monday' THEN 'Понедельник'
         WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'tuesday' THEN 'Вторник'
         WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'wednesday' THEN 'Среда'
         WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'thursday' THEN 'Четверг'
         WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'friday' THEN 'Пятница'
         WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'saturday' THEN 'Суббота'
         WHEN  LOWER(TO_CHAR(created_date, 'Day')) = 'sunday' THEN 'Воскресенье'
    END week
FROM results
GROUP BY created_date;
Вопрос: Есть ли способ получать обновления из транслирования геолокации телеграм боту?

Лучший ответ:
Если пользуетесь библиотекой telebot, можете использовать 
bot.middleware_handler с параметром update_types=['edited_message']

Этот код обработает изменения всех сообщений. Причем декорированная функция принимает 2 аргумента. Инстанс бота и сообщение.

@bot.middleware_handler(update_types=['edited_message'])
def foo(bot_instanse, message):
    print(message)

Документации по этому декоратору особо нет, так что можете порыться на гитхабе в исходниках библиотеки

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

Лучший ответ:
Ну для начала, что значит "не задерживал"? Если последующий код зависит от результата работы этого цикла, толку всё равно не будет.
Так что первым делом определись для себя, какие куски кода ты хочешь выполнять параллельно и почему. Вынеси эти фрагменты в отдельные функции.
Далее, реализовать более-менее параллельное выполнение можно через threading.Thread, но там есть целый ряд подводных камней. В первую очередь, доступ на запись (или на чтение и запись) к одной и той же переменной из двух потоков. Во вторую, как следствие - умение передать исходные данные в другой поток и дождаться результата работы из другого потока. В третью - объекты из некоторых библиотек нормально работают только в пределах одного потока, передавать их между потоками нельзя.

Худший ответ:
изучайте
Вопрос: Как обфусцировать трафик?

Лучший ответ:
Cloak - ещё один вариант PT, который маскирует трафик других протоколов под HTTP-трафик, что затрудняет его блокировку.

Stunnel - технология туннелирования, позволяющая в том числе маскировать трафик под HTTPS, то есть в конечном счёте под TLS, что затрудняет блокирование VPN трафика.

OpenVPN Scramble (XOR Obfuscation) - технология обфускации трафика, использующая шифр XOR (также известный как гаммирование) для того, чтобы DPI алгоритмы не могли распознать его.

Chameleon - проприетарный протокол VyprVPN, маскирующий трафик OpenVPN.

Худший ответ:
Из официального ещё есть Snowflake, инфраструктуру к нему предоставляет Tor Project (и волонтёры).
А вообще, способов обфускаций множество, как конкретно для Tor в виде pluggable module, так и отдельные, в виде прокси.