Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Что такое магия в Ruby on Rails?

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

Худший ответ:
Рельсы автоматически делают кучу работы за вас. Вы просто создали контроллер. А у вас в нем есть доступ к определенным переменным, методам, другим классам. Вы их сами не определяли и не импортировали в своем коде. Метод контроллера что-то вернул, рельсы сами найдут какую вьюху отрендерить. Не нужно самому писать где она лежит и как называется. Оно просто работает, как по волшебству. Это удобно, позволяет писать меньше кода. Но если не разбираться как работают эти фокусы, то рано или поздно возникнут проблемы.
Вопрос: Как государство мониторит «запрещенный» контент?

Лучший ответ:
Не понимаю, почему вы задаете этот вопрос. А как работают поисковики? Как поисковики знают, где продают электроудочки, а где надувных женщин? Что мешает ФСБ индексировать сайты и их контент? Что им мешает получать данные индексации от того же самого Яндекса? Забрали информацию о сайтах - передали провайдеру для блокировки. Аналогично, на основании "письма АБВГД-123456 за 25 Марта сего года" обязали Яндекс в неделю раз присылать обновленный индекс. Опять же, провайдеру для блокировки. И так далее. Я уже не говорю про банальную прозрачность HTTP и про Deep Packet Inspection вместе с подменами сертификатов в стиле Man-in-the-middle. Но если это и уже о чём-то, то с тем, о чем я в начале текста написал, какие проблемы с индексацией этой информации у ФСБ и прочих органов?

Худший ответ:
У них стоит специальное ПО?У прокуратуры нет. Какие то другие органы может и мониторят по ключевым словам, но вряд ли они заинтересуются электроудочками.
Это скорее просто по заявлению граждан.
Большинство рыбаков увидев такое объявление накатают заяву. У них же нет возможности самим найти автора объявления.
Вопрос: Правильно ли я размышляю по поводу ref и out?

Лучший ответ:
Не совсем. a и b передаются по значению. Это легко проверить, если написать в теле функции a = 17. Переменная в Main не изменится. В свою очередь переменная с передается как раз как ref, хоть и называется out. Отличие лишь в том, что переменная out может передаваться неинициированной, но объявленной.
Вот почитайте.

Худший ответ:
Не совсем. a и b передаются по значению. Это легко проверить, если написать в теле функции a = 17. Переменная в Main не изменится. В свою очередь переменная с передается как раз как ref, хоть и называется out. Отличие лишь в том, что переменная out может передаваться неинициированной, но объявленной.
Вот почитайте.
Вопрос: Где грань между созданием экземпляра объекта (new Class()) и использованием оператора разрешения области видимости (::)?

Лучший ответ:
Статические методы стоит использовать в качестве именованных конструкторов. Для всего остального лучше создавать экземпляры объектов, потому что статические методы к ООП, по большому счёту, никакого отношения не имеют и поэтому размывают парадигму для тех, кто в ней не очень хорошо ориентируется.
Если в статическом методе нет работы с состоянием и таких методов много, скорее всего, автор кода не очень проникся идеями ООП и код написан в процедурном стиле. А если там есть модификация какого-то состояния, то это работа с глобальными переменными (почему глобальные переменные - это плохо, надеюсь, пояснять не нужно).Обязательно ли создавать экземпляр? Или можно обойтись статическими методами
У вас в коде есть вот это: echo Form::getError();. Откуда статический метод будет получать информацию об ошибке формы? Как он будет отличать ошибки одной формы от другой?Единственное что знаю, экземпляр надо создавать тогда, когда он оперирует уникальными даннымиЭкземпляр нужен тогда, когда у него есть какое-то собственное состояние (ошибки валидации, например). У двух объектов состояние может совпадать (то есть быть неуникальным), но это не значит, что в следующий момент один из них не изменится.

Худший ответ:
Никакой значительной разницы по функционалу кроме того что нельзя использовать $this статический вызов не несёт.
Как удобнее в общем-то...
И да(@alexey-m-ukolov) это не по ООПешному.
Вопрос: Как сократить траффик OpenVPN?

Лучший ответ:
Только полностью отключив шифрование и подпись пакетов, можно будет уменьшить оверхед до 28 байт на пакет (заголовок IP + заголовок UDP) для tun.

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

Лучший ответ:
Хочет работать в етой сфере - пусть привыкает к вакому
Когда станет звездой - купит себе моноблок с тачем за $2-5k

Худший ответ:
графического монитора(может исковеркал название).
Тач-скрин монитор - такой термин гугл охотней проглотит. Хорошие стоят действительно дорого. И действительно лучше с таким бюджетом рассматривать ваком и его аналоги.
Пожелания я прекрасно понимаю, меня тоже дико коробит тот факт, что глаза и руки работают в разных плоскостях, но... но.
Вопрос: Не понимает символ $ Jquery?

Лучший ответ:
https://api.jquery.com/jQuery.noConflict/
Можете обернуть код если хотите:(function ($) {
    // Тут можно и $
})(jQuery);

Худший ответ:
www.steffnomidi.ru/perexod-na-shtatnyj-jquery-v-wo...jQuery(document).ready( function($) { /*ВАШ КОД*/ } );
Вопрос: КАК правильно составить запрос MYSQL на выборку от и до?

Лучший ответ:
Дописать:AND `age` BETWEEN 64 AND 99
То есть, получится:SELECT `firstname`, `middlname`, `lastname`,`age`,`phone1`,`phone2`,`town` FROM profil WHERE `town` BETWEEN 4 AND 14 AND `age` BETWEEN 64 AND 99

Худший ответ:
Можно тупо в лоб:WHERE age >= 64 AND age <= 99
Вопрос: Можно-ли брать доп. плату за несоблюдение дэдлайна?

Лучший ответ:
Абсурд! На каком основании?

Худший ответ:
ГК РФ Статья 406. Просрочка кредитора
Вопрос: Есть какое-то соотношение букв и изображения для логотипа?

Лучший ответ:
Золотое сечение или 1.62

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

Лучший ответ:
Это можно легко сделать с помощью npm-пакета rimraf.
Устанавливаем rimraf глобально в системе:
npm install rimraf -g
Затем переходим в папку с node_modules и удаляем её такой командой:
rimraf node_modules

Худший ответ:
Универсальный способ удаления папок и файлов, вне зависимости от вложенности и длинны путей.
delete.bat@del %1 /Q /F > nul
@set tempf=.temp%random%
@mkdir %tempf%
@attrib +H %tempf%
@robocopy %tempf% %1 /purge /NFL /NDL /NJH /NJS /nc /ns /np > nul
@rmdir %tempf%
@rmdir /S /Q %1
Использовать как delete <путь к папке или файлу>
Вопрос: Как зайти в web-интерфейс другой подсети?

Лучший ответ:
Так на какой роутер вам попасть нужно? На Микротик? У него адрес 192.168.88.1. Не заходит? Не пингуется? Вы уверены, что на нём включена веб-морда? А уверены что http, а не https? Winbox пробовали использовать для подключения? А SSH?

Худший ответ:
а кто вам мешает зайти на веб интерфейс роутера по адресу 192.168.88.254 ?
Вопрос: Что запрещать в robots.txt?

Лучший ответ:
Перед папкой www папки по типу logs, tmp и т.д. Их нужно запрещать индексировать ? 
НетВ папке сайт.com есть папки css, js, img, fonts и файл .htaccess. Нужно запрещать или нет ? 
Нет
Запрещать индексировать нужно каталоги со страницами, которые вы не хотели бы что бы  попали в индекс

Худший ответ:
Ничего из этого запрещать не надо, как вы такие глупости выдумали?
Вопрос: С++ умирает слишком долго?

Лучший ответ:
Гы-гы. Ну, я слышал, что Delphi уже умер, что JAVA ни сегодня так завтра помрет, но про С++ слышу впервые.
Не боись, до твоей пенсии С++ доживет. Ну если не доживет, не велика потеря, реальному программисту без разницы на чем писать

Худший ответ:
Если не трудно ссылку дайте на такое утверждение.
C++ и C точно не умрет лет так 20+-(хотя кто его знает, Swift буквально за пару лет отъел большую долю Obj.-C) т.к быстрее C++ и C только ассемблер. C нужен на микроконтроллерах,  марсоходах в NASA , в общем там, где нужна скорость и память является частичной проблемой. C++ используется в играх, ПО,  марсоходах NASA  , в общем там, где нужна большая скорость программы. А всякие Java, Go, JS и другие не вытеснят(хотя на JS уже начинают делать ПО даже большие компании такие как Microsoft, Adobe) ибо там область применение чуть другая  и на них нельзя писать марсоходы для NASA . Хотя могут написать "Супер-пупер крутую библиотеку" и она может где-то использоваться, например тот же Electron, но полностью она не вытеснит C/C++. Может в далёком будущем придумают язык быстрее C/C++ или полностью переработают архитектуру компьютера и он будет не нужен, но сейчас имеет смысл учить C++ для работы в GameDev'е или ПО, или просто для себя.
Вопрос: Как разбить парсинг XML файла на несколько потоков в C#?

Лучший ответ:
В добавок к сказанному у cicatrix 
заменить циклы foreach наParallel.Invoke(() => DoSomeWork(), () => DoSomeOtherWork());
При помощи библиотеки Task-based Asynchronous Programming
Это избавит от необходимости вКоличество потоков подобрать под конкретное железо, либо (если есть желание заморочиться) можно сделать настраиваемым - начать с 4 потоков, считать среднюю скорость обработки узлов (кол-во узлов в минуту), вводить по одному потоку в минуту, измеряя, увеличилось ли время или уменьшилось. Если время увеличилось - возвращаем прежнее количество, если уменьшилось - добавляем ещё поток, пока не найдём оптимальный вариант.

Худший ответ:
Я смотрю, у вас какой-то XML ридер особый. Многое зависит от его реализации, а именно - его потокобезопасности.
В принципе, у вас главный foreach можно распараллелить следующим образом:
Делаем по шаблону "производитель-потребитель" 
Производитель у вас будет один - ваш ридер, который должен "поставлять" ссылки на отдельные узлы вашего файла. Потребителем должны стать потоки, хватающие первый попавшийся (и учтите это сразу - они будут хватать не по порядку, а именно - первый попавшийся узел) и парсящие их.
Количество потоков подобрать под конкретное железо, либо (если есть желание заморочиться) можно сделать настраиваемым - начать с 4 потоков, считать среднюю скорость обработки узлов (кол-во узлов в минуту), вводить по одному потоку в минуту, измеряя, увеличилось ли время или уменьшилось. Если время увеличилось - возвращаем прежнее количество, если уменьшилось - добавляем ещё поток, пока не найдём оптимальный вариант.
Вопрос: Как игнорировать inline стили в HTML-файле?

Лучший ответ:
У меня работает все нормально.#tag-id{
display: none !important;
}

Худший ответ:
important помогает#tag-id{
	display: none!important;
}
Вопрос: Домашнийwi fi роутер поддерживающий vpn, ipsec и т.д?

Лучший ответ:
Mikrotik , модель для дома например HAP AP

Худший ответ:
В любом роутере Keenetic есть отдельный VPN клиент.
В диапазоне $40-50 можно, например, приобрести довольно пробивной KEENETIC Air с четырьмя антеннами + Seed4.Me VPN (L2TP/PPTP).
Вопрос: Что можно почитать про рекламу в целом?

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

Худший ответ:
Вот в этом списке может будет что-то. Т.к понятие рекламы в интернете весьма растяжимое, к тому же тренды меняются тут чуть ли не каждый квартал.https://texterra.ru/blog/100-luchshikh-knig-po-int...
Вопрос: Почему возникает ошибка в переносе строки в JavaScript?

Лучший ответ:
Не может обычная строка переноситься. В конце подставляется точка с запятой и получаются две незакрытые строки в коде.
В новой версии JS для этого есть обратные кавычки:`Адрес пункта выдачи товара#вот_на_это_место_ругается_отладчик#
`

Худший ответ:
Поставьте обратный слеш в конце строки
Вопрос: Как будет работать сервер на следующем железе?

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

Худший ответ:
Купите VPS за 200 рублей, к примеру, можете тут взять - vscale.io. Вам должно хватить.
Если не хватит - купите сервак подороже и не забивайте мелочами голову)
Вопрос: Как раскручивать различные сервисы?

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

Худший ответ:
При синонимах и формулировках - упор на поисковые запросы пользователей в поисковых системах (ПС).Ответ
Вопрос: Как сделать поиск по отдельным словам разбросанным по всему тексту?

Лучший ответ:
Для таких целей, обычно, используют поисковый движок, который интегрируется с MySQL:SphinxelasticSearch Apache Solr...

Худший ответ:
для MS SQL я напишу такое, функция разбиения строки по символу разделителю пишется в строк 10Есть готовая STRING_SPLIT.
Вопрос: Как правильно повесить обработчик события?

Лучший ответ:
Потому, что в первом случае вы передаете возвращаемое значение функции, а во втором функцию, которую нужно выполнить.
т.е. element.addEventListener ожидает вторым аргументом функцию, которую следует выполнить. Вот этот кусокmyFunc('arg')
это вызов функции с аргументом 'arg', вызов функции будет произведен сразу, и его результат (который будет передан в return функции) будет передан в element.addEventListener. Вы конечно же можете в myFunc вернуть функцию, тогда будет работать.
также можно написать такelement.addEventListener( "click" ,  myFunc.bind(null, 'arg') );
метод bind создает и возвращает функцию обертку, при вызове которой, в нее будет подставлен аргумент 'arg'.

Худший ответ:
Потому что нужно передавать саму функцию - element.addEventListener('click', myFunc) а не запускать ее выполнение. Отправляя myFunc('arg') вы сразу же запускаете выполнение функции. Чтобы отправить параметры функции в обработчик нужно привязать контекст через .bind, как уже вам написали в примере выше, либо использовать метод .handleEvent из интерфейса EventListener:function myFunc(event) {
    console.log(this.arg);
}
.....
element.addEventListener('click', {
    handleEvent: myFunc,
    arg: 'arg_value'
});
Вопрос: Как проверить не взломан ли роутер?

Лучший ответ:
Какие марка и модель роутера? Если для роутера есть уязвимость и её можно проэксплуатировать, то не имеет значения какой стоит пароль. Роутер мог быть частью ботнета, или использоваться для совершения противоправных действий с его помощью (в качестве примера случай с математиком Богатовым Д. правда там тор, но все равно параллели можно увидеть). Вылечить, надо обновлять прошивку постоянно. Как проверить наличие сниферов и прочего, надо проверять какие скрипты появились, настройки менялись, реверсить прошивку, сравнивать ее с оригиналом у производителя, да и могут быть зиродей в протоколе, в реализации фронтэнда, есть организации которые этим занимаются (может например https://neobit.ru/services/audit и подобные). Что про днс тут не знаю.

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

Лучший ответ:
это называется "технический писатель"

Худший ответ:
На биржах копирайтинга. Например eTXT.ru или advego
Вопрос: Как соединиться с MySQL через PHP 7 на Localhost (ошибка "Connection failed: could not find driver")?

Лучший ответ:
Уверены что стоит  php7.x-mysql?
Проверьте в php.ini extension

Худший ответ:
А зачем пароль? Обычно рут без пароля идёт =)
Вопрос: Sennheiser hd 518 поставлялся с большим Джеком, как на электрогитару,как его перепаять под джек 3.5?

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

Худший ответ:
Прозвоните провода<->контакты большого джека и спроецируйте на 3.5 джек. 
Только не уверен что эти провода будут легко паяться. :(
Вопрос: Правильно ли названы классы по БЭМ?

Лучший ответ:
Привет. Я не супер эксперт, но на сколько я знаю нет...
Для примера возьму твой верхний кусок кода<section class="testimonials">
        <div class="container">
            <div class="testimonials__wrapper">
                <div class="testimonials__wrapper_item">
                    <div class="testimonials__wrapper_item_img">
                        <img src="img/photo/testimonial.png" alt="Q">
                    </div>
                    <div class="testimonials__wrapper_item_text">
                        <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.”</p>
                        <h4>Joe Doe</h4>
                    </div>
                </div>
я бы сделал так:<section class="testimonials">
        <div class="container">
            <div class="testimonials__wrapper">
                <div class="testimonials-item">
                    <div class="testimonials-item__img">
                        <img src="img/photo/testimonial.png" alt="Q">
                    </div>
                    <div class="testimonials-item__text">
                        <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.”</p>
                        <h4>Joe Doe</h4>
                    </div>
                </div>
Но учти, что у меня сейчас почти 3 часа ночи, и за меня говорит мой кофе)

Худший ответ:
По БЭМ нотации — неправильно. Как уже заметили, элемент не может содержать в себе другие элементы, а имя класса вовсе не обязано показывать всю иерархию внутри блока, а только заявлять о принадлежности к определенному блоку. Так как "айтемов" может быть много, для них тоже нужно создать свой блок. CSS для item нужно привязывать к этому блоку, а его состояние внутри родителя — к элементу item, дочернему testimonials. Я бы сделал так:<section class="testimonials">
    	<div class="container testimonials__container">
    		<div class="testimonials__item testimonials-item">
    			<img src="http://placehold.it/100/100" alt="alt" class="testimonials-item__img">
    			<div class="testimonials-item__text" ></div>
    			<div class="testimonials-item__name"></div>
    		</div>
    		<div class="testimonials__item testimonials-item">
    			<img src="" alt="" class="testimonials-item__img">
    			<div class="testimonials-item__text"></div>
    			<div class="testimonials-item__name"></div>
    		</div>
    	</div>
    </section>
Вопрос: Как проверить работоспособность китайской Ардуино?

Лучший ответ:
На плате большими буквами написано UNO, его и выбирайте

Худший ответ:
Вроде Arduino Yun, первый пункт, но это не точно)
Вопрос: Как хранить netflow?

Лучший ответ:
Давайте определимся - Вам надо собирать, анализировать, анализировать бесплатно или анализировать быстро?
Коллектора бесплатные есть - и работают, по слухам, вполне стабильно. Анализаторы - тут хуже. 13 Free Netflow Analyzer
Ну а анализировать быстро и бесплатно при 1Тб данных за месяц  - это вопрос не к ПО, вернее не только к ПО но и к железу.

Худший ответ:
Возможно, не справляется аппаратная часть.
В качестве фришного решения может подойти ntop
Вопрос: Чем отличается forceUpdate от setState?

Лучший ответ:
Серьезно?!forceUpdate() - черным по белому жеж ...использование forceUpdate привести к каким то побочным эфектам
конечно может. Но вообще это скорее исключение из правил и лучше пользовать setState()
Если кратко: setState() записывает данные в this.state и вызывает рендер.forceUpdate() ничего не делает, а просто вызывает рендер. В принципе бесполезная функция, т.е. если ни props, ни state не изменились, то отрендерится один фиг тоже самое. Если честно даже в голову не приходит зачем это может понадобится, кроме каких-нить волшебных асинхронных костылей в render'e.

Худший ответ:
единственный раз когда понадобился forceUpdate, это реализовать медиа запросы в проекте в котором нужна была поддержка ie8.
Вопрос: Как определить неисправные места ПК (отключается иногда сам по себе,и зависает сильно)?

Лучший ответ:
Проверяем:
1) отсутствие вспухших электролитических конденсаторов на материнке и в блоке питания
2) наличие на месте радиаторов и работу вентиляторов, убираем пыль
3) прогоняем memtest86
4) замеряем напряжения с блока питания под нагрузкой
5) если есть свободный слот для оперативки, то переставляем пластину памяти в него
Дальше без осциллографа делать нечего.

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

Лучший ответ:
Проксировать через сервер с белым ip.

Худший ответ:
Погуглите Dynamic DNS (DDNS)
Вопрос: Как сделать эффект подпрыгивания не при наведении?

Лучший ответ:
Для этого даже JavaScript не нужен 
www.w3schools.com/cssref/css3_pr_animation.asp
Обрати внимание на параметр animation-iteration-count

Худший ответ:
Создаешь анимацию 
@keyframe animat{
from{
top: 40px;
}
to{
top: 70px;
}
}
И у объекта div {
animation: animat 3s;
animation-direction: reverse;
}
Вопрос: Можно ли заставить отвечать бота в телеграмм стикерами?

Лучший ответ:
Если используешь либу PyTelegramBotAPI, то пиши:
bot.send_sticker(message.chat.id, "ID стикера")
или
sticker=open("путь к стикеру на машине (например: D:\\telebot\\stickers\\stick_name.webp)", "rb")
bot.send_sticker(message.chat.id, sticker)

1) Стикеры обязательно должны быть изображением в формате .webp и иметь не более 512 пикселей в ширину и высоту (если решили юзать второй способ)
2) ID стикера можно узнать, если отправить его @idstickerbot (если решили юзать первый способ)

Худший ответ:
Имеется в виду звуком?
Можно. На сервере генерируете запись (файл) и отправляете его пользователю. Но автоплея нет, т.е. пользователь будет в ручную запускать воспроизведение звука
Вопрос: Как узнать пол пользователя instagram?

Лучший ответ:
Невозможно. 
Но есть три обходных способа: распознавание лиц на фото, пробить имя по базе имён, смотреть от какого лица подписи под постами.
Интстаграм никак не отдаёт пол. 
Пишу приложение для продвижения в инсте, юзая веб-версию. 
Можно получить многое из аккаунта, кроме пола. 
Пол только сам инстаграм юзает, в разделе статистика у бизнес аккаунта, используя данные, которые юзер указал в профиле в графе "пол". Наружу они нигде не торчат, ни в мобильной версии, ни в веб.
Ещё четвёртый обходной вариант: юзать пол из фб. Но мало людей привязывают свой фб к аккаунту, особенно в СНГ

Худший ответ:
По никам именам и текстами в био