Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Стоит ли разрабатывать приложение C# Xamarin на IOS/Android?

Лучший ответ:
Во-первых, определите для себя критерии "стоящести"
А так вот моё мнение, когда имеет смысл выбрать именно Xamarin:
1. Уже есть много бизнес-логики, написанной на C# или любом другом .net языке
2. В дальнейшем планируется поддержка приложения C#-разработчиками.
Серьёзных причин, почему нет - нет (по моему мнению)
Есть ещё неплохой доклад на эту тему, правда не самый новый

Худший ответ:
Составьте бизнес план, потом 
Составьте ТЗ
Потом посчитайте отобьетсяли ли разработка
после пишите или нанимайте
Вопрос: Как сделать счётчик просмотров статьёй?

Лучший ответ:
Я делал через куки на 1 час, чтобы не считать несколько раз.
Далее к каждой статье создается поле количества просмотров.
Если куки есть - пропускам, если нет - прибавляем 1.
Функция подсчета:# Подсчет количества посещений страницы
function set_postviews() {

  $count_key    = 'post_views_count';  // Имя поля для записи количества просмотров
	$who_count    = 1;	// 0 - считать всех, 1 - только гостей, 2 - только зарегистрированных пользователей
	$exclude_bots = 1;	// 0 - считать всех, 1 - исключить из подсчета ботов

	global $user_ID, $post, $cookie_test;

	# Проверка, что не было просмотра страницы в течение часа
	if( is_singular() && $cookie_test) {

		$id = (int)$post->ID;
		static $post_views = false;
		if( $post_views ) return true; // чтобы 1 раз за поток

		$post_views = (int)get_post_meta( $id, $count_key, true );

		# Проверка пользователя: гость или зарегистрирован
		$should_count = false;
		switch( (int)$who_count ) {
			case 0: $should_count = true;
				break;
			case 1:
				if( (int)$user_ID == 0 )
					$should_count = true;
				break;
			case 2:
				if( (int)$user_ID > 0 )
					$should_count = true;
				break;
		}

		# Проверка на браузер или не бот, иначе false
		if( (int)$exclude_bots == 1 && $should_count ){
			$useragent = $_SERVER['HTTP_USER_AGENT'];
			$notbot = "Mozilla|Opera"; //Chrome|Safari|Firefox|Netscape - все равны Mozilla
			$bot = "Bot/|robot|Slurp/|yahoo"; //Яндекс иногда как Mozilla представляется
			if ( !preg_match("/$notbot/i", $useragent ) || preg_match( "!$bot!i", $useragent ) )
				$should_count = false;
		}

		# Обновляем счетик, если поля нет, то создаем со значением 1
		if( $should_count )
			if( !update_post_meta( $id, $count_key, ($post_views+1)) ) add_post_meta( $id, $count_key, 1, true );
	}
	return true;
}
add_action('wp_head', 'set_postviews');
Куки так:/*
* Создаем куки, чтобы дважды не считать один и тот же пост в течение 1 часа
*
*			в самое начало single.php пропишем:
*			<?php
*				global $cookie_test;
*				$cookie_test = false;
*
*				# Определяем имя файла (поста)
*				$url = parse_url($_SERVER['REQUEST_URI']);
*				$path = pathinfo($url['path']);
*				$basename = $path['basename'];
*
*				if( $basename && !isset($_COOKIE[$basename]) ) {
*					$cookie_test = true;
*					setcookie( $basename, '1', time()+3600 );
*				}
*			?>
**/

Худший ответ:
Плагин Top 10
Вопрос: Как убрать помехи на ТВ от гирлянды WS2812b?

Лучший ответ:
1. Определить, помеха идет от подключения гирлянды к сети в целом, или именно от записи данных по SPI с высокой скоростью. Для этого нужно не выключая гирянды зажать кнопку RESET не плате ардуино. Если помехи не прекратятся, нужно отвязывать гирлянду от источника питания с помощью индуктивностей. Скорее всего помеху дает импульсный источник питания.
2. Если помехи от SPI, можно попытаться сгладить немного фронты сигналов, поставив последовательно с пинами данных резисторы 100R, 1К, 10К - пока не перестанет работать.

Худший ответ:
Если не перемещать антенну, то может изготовить экран для нее?
Вопрос: Безопасная передача данных на сервер?

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

Худший ответ:
Использовать HTTPS.
Все передаваемые запросы необходимо подписывать.
На JS нельзя ничего сделать безопасно.
Всю критическую логику должен обрабатывать сервер, клиент только отправляет запрос на нужные действия, а сервер принимает решение, выполнять их или нет.
Работать через сессии
Вопрос: Почему не получается сдвинуть элемент вверх?

Лучший ответ:
margin-top: 1050px 
уже о чем-то да говорит. посмотри на ютубе что-нибудь про Css и вопросов не возникнет

Худший ответ:
А зачем два раза указывать в классе enjoy margin-bottom?
Да и вообще зачем такие большие внешние отступы? Или вы таким способом хотите центрировать под ваш экран?
Вопрос: Как взаимодействуют узлы через коммутатор?

Лучший ответ:
Второй вопрос задайте отдельно, иначе это будет нарушением местных правил.

Чтобы узнать MAC второй машины, перед отправкой пакета, первая машина делает запрос по протоколу ARP, который в переводе на русский звучит как "у какой машины IP X.Y.Z.Q ? ответьте машине x.y.z.q"

После этого, узнав MAC по IP, машина может направлять пакеты куда надо.

Худший ответ:
> Тогда напрашивается вопрос, откуда там берутся локальные IP
там - это где?
если речь о домашней локальной сети - прописываются владельцем ПК руками или присваиваются DHCP-сервером роутера.
Вопрос: Правильное добавление/обновление таблиц в базах данных?

Лучший ответ:
Можно в Memcached выполнять агрегацию лайков пачками по 10k плюс ограничением по времени до 5 сек. и затем обновлять агрегированные значения в БД. Напрямую или через очередь.
Для начала хотя бы так.
Кроме этого, на клиенте можно оттягивать отправку после 1-го клика при помощи техники debounce. Также по теме https://levelup.gitconnected.com/debounce-in-javas...

Худший ответ:
Во-первых есть запросы, а во-вторых есть разные виды кэширования: Read-Through, Write-Through и другие. У всех есть свои минусы и недостатки. Кроме того под капотом в таких системах чаще всего внутри все работает на очередях или стриминге
Вопрос: Генерация города (процедурная)?

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

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

Ну и пара статей:
https://habr.com/ru/company/piter/blog/455004/
https://habr.com/ru/post/320140/ (да, это лабиринт а не город - но общие черты есть)

Худший ответ:
Город похож на город когда дома и кварталы в нем имеют углы - близкие к 90 градусов. Такой вот нечеткий криетрий.

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

Лучший ответ:
Не скажу как там о прогерах, так как к ним отношусь только по касательной, но так как человек я творчекский могу сказать своё мнение.
Первое что важно в проекте - это то что вы должны им "болеть", ведь если этого не будет, то всё это быстро загнётся и попадёт очередным стаком в папку "потом какнить". Интерес играет оооочень немаловажную роль. А сами проекты появляются из потребностей повседневной жизни(неважно - рабочей или домашней и тд.). К примеру я люблю автоматизацию и прочие програмно-скриптовые вещи, которые помогают решать рутинные задачи, дизайн, систематизацию и многое другое, по сути просто "болею" созданием чего-то нового, а иногда и изобретением велосипеда, потому что даже изобретая велосипед ты проходишь путь, который кто-то проходил первым в своём роде. Тем самым ты учишься чему-то новому и интересному. Но я отошёл немного от основной темы, извиняюсь. 
Так вот, живу я себе спокойно и тут понимаю, что люди с которыми я "имею дело" нуждаются в прокси свитчере, которорому бы они могли на 100 процентов доверять, который не угоняет и не парсит их данные и так далее. А из скриптов я тогда знал только батники :). Ну и сел я делать это, несколько дней мучался с тем чтоб это хоть как-то работало(по началу у меня айпи даже не менялся, тупо не было реакции), пробовал, терпел неудачу и снова пробовал. В итоге спустя много потных часов у меня вышло написать чистый батник для сменя айпи в две кнопки клавы и один клик(цифра, enter, левый клик). Для мнея это было интересно и познавательно, хотя это был велосипед, зато свой и нужный, так и появился мой личный прокси свитчер, лёкий и способный обработать в теории бесконечное количество проксей(зависит от машины) и были у меня планы по его расширению даже, но основная цель была выполнена, люди одобрили, мне этого хватило, но я всегда готов достать исходники из "загашника" и допилить то что будет требоваться(так как с тех пор и знания мои подросли). Этим примером я хотел сказать, что без цели и мотивации, мало что выходит, и в этом тандеме она главная, потому что цель найти проще, ведь даже деньги не всегда могут её пробудить.
Делать велосипеды не зазорно, зазорно прокрастинировать и тонуть в болоте повседневности.

Худший ответ:
По-разному, бывало я просто видел, как люди чего-то делают, и думал "а как бы я это организовал", и писал. Иногда мне нужен был инструмент, я писал его, а затем модифицировал.
Или был какой-то кусок жизнедеятельности, который нуждался в автоматизации.
Вопрос: Как правильно (!) примонтировать папку «www» в FTP-папку пользователя?

Лучший ответ:
Самый простой способ это добавить mount /var/www /home/gavrila/ftp/sites в автостарт системы. Но это небезопасно и подходит только для поиграться.
Насколько я помню, для администрирования сайта делают отдельного пользователя для каждого сайта и этому пользователю выставляют папку с сайтом как home каталог. тогда при логине по FTP система автоматически перейдет в папку с сайтом. vsFTPd умеет брать конфиги пользователей не из системы, значит можно не засорять систему лишними пользователями. Почитай про добавление пользователей в vsFTPd. Основной посыл это заставить ftp сервер chroot`нуть тебя в папку с сайтом при логине.

Худший ответ:
Ничего никуда не монтировать. Если по каким-то непонятным религиозным причинам хочется использовать небезопасный ftp, то использовать pure-ftpd, который умеет виртуальных пользователей у которых можно прописать под каким реальным пользователем и группой будут записаны файлы которые этот пользователь положит и чрет для этого пользователя в нужную директорию.
Если использовать sftp, то есть mysecureshell, который умеет тоже самое.
Вопрос: Какие технологии андроид-разработки актуальны в 2020?

Лучший ответ:
Я бы сказал 
Kotlin, RxJava+RxAndroid+RxKotlin, Conductor, Dagger 2, Retrofit+okhttp, Moshi, Glide, AdapterDelegates, Timber, Firebase, SQLDelight. Может что-то забыл, но на первое время точно хватит.

Ещё сейчас форсятся корутины, почти везде есть к ним биндинги. Но я бы не стал, не нравятся они мне. Пользуюсь только по необходимости (мультиплатформа).
Либы, которые форсят архитектуру, имхо, нафиг, проще писать руками, ничего там такого сложного нет. Но Architecture components можно посмотреть, иногда полезно. И архитектуры выбранной придерживаться.

Jetpack compose не так чтобы production-ready, хоть его и форсят из всех углов.
Flutter от всего этого сбоку находится, там своя атмосфера, пишут на Dart, и с обычным приложением это всё плюс-минус несовместимо.
splitties посмотрел, полезно, но, имхо, в любом более-менее крупном проекте возникнет своя библиотека экстеншнов, а искать на каждый чик там зависимость.. ну такое. Проще за пару минут своё написать.

Худший ответ:
https://developer.android.com/jetpack
https://developer.android.com/kotlin
https://developer.android.com/topic/libraries/supp...
https://developer.android.com/reference/packages
https://square.github.io/retrofit/
https://square.github.io/okhttp/
Это основное. Оно будет всегда или очень долго.
Вопрос: Используют ли document.write и почему бы нет?

Лучший ответ:
Метод document.write – один из наиболее древних методов добавления текста к документу.
У него есть существенные ограничения, поэтому он используется редко, но по своей сути он совершенно уникален и иногда, хоть и редко, может быть полезен.
https://learn.javascript.ru/document-write<!DOCTYPE html>
<html>
<body>

<h2>My First Web Page</h2>
<p>My first paragraph.</p>

<p>Never call document.write after the document has finished loading.
It will overwrite the whole document.</p>

<script>
	document.addEventListener("DOMContentLoaded", function(){
		document.write(5 + 6);
	});
</script>


</body>
</html>
https://developer.mozilla.org/ru/docs/Web/Events/D...

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

Лучший ответ:
Никто не считает ваш опыт, вы считаете его сами, как хотите.

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

Лучший ответ:
Вот варик пришел на ум ;)
snippet

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

Лучший ответ:
Мое решение (работеает уже давно). Работает на всем, что шевелится - Андроиды, Windows, Макинтоши.
SSH тоннель с ключами, защищенными пасскодами.

-ставим сервер с выходом в инет на белом IP
-отрубаем вход под рутом
-отрубаем шелл
-вешаем ssh на рандомный порт
-всем юзерам делаем персональные учетки, генерим ключи

На машине клиента (домашней):
нужен батник из одной строчки, программа plink.exe и закрытая часть ключа.
plink -P ПОРТ -l ЛОГИН -i КЛЮЧ_ЗАКРЫТЫЙ.PPH  -N -L 23389:МАШИНА_КЛИЕНТА_В_ОФИСЕ:3389 АДРЕС_ШЛЮЗА_В_ИНЕТЕ
pause

Клиент у себя врубает батник, вводит пасскод от ключа и подключается на адрес типа 127.0.0.1:23389, а SSH его уже туннелит куда надо.

Есть процедуры, позволяющие сгенерить ключи без визита сотрудников в офис.

Худший ответ:
VPN на стороне вашего интернет провайдера и RDP на рабочих компьютерах. Идеально если интернет дома от этого же провайдера. Скорее всего провайдер запросит разумных денег за аренду и настройку VPN, а возможно и "за так".
Вопрос: Почему верстка на div — это зло?

Лучший ответ:
50 на 50. 
Если все верстать дивами то можно в крупном проекте потеряться как минимум устать ?)
Попробуйте использовать несколько из основных HTML5 Tag's такие как:
- header = шапка сайта
- main = оболочка для контента сайта
- footer = футер сайта
-- section = секция отдельных блоков
-- и т.д это тип основные

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

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

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

находите доминантный цвет
Как в opencv определить доминирующий цвет?
https://stackoverrun.com/ru/q/7910222
уровень освещенности
https://opencv-python-tutroals.readthedocs.io/en/l...
получаете описание главного объекта продвинутым алгоритмом
https://www.pyimagesearch.com/2017/09/11/object-de...

И кластеризуете по полученным характеристикам.
https://api-2d3d-cad.com/ident_by_color_texture/
https://habr.com/ru/post/321216/

Худший ответ:
В пакете DeepFaceLab есть батник, соотирующий фото по схожести. Работает, кажется, через xnView. Можете посмотреть
Вопрос: Как подключиться к удаленному рабочему столу?

Лучший ответ:
Ну так и подключайтесь по IP. Если он не серый, то все сработает.

Худший ответ:
Суммирую. На удалённом раутере должен быть белый адрес. На этом раутере настраиваем проброс по порту на адрес нужного сервера. Соединяется по днс имени, если днс настроен. Или по белому адресу. Порт rdp по умолчанию 3389
Вопрос: Как реализовать редактирование профиля из фронтенда Wordpress?

Лучший ответ:
Все данные юзера хранятся в мета полях, ваша задача - получить данные из формы и сохранить их в соответствующем поле
Можно сохранять по одному полю  update_user_meta https://github.com/WordPress/WordPress/blob/master...
Можно пачкой wp_update_user https://github.com/WordPress/WordPress/blob/master...
Вообще стоит посмотреть описание и код функции wp_insert_user https://github.com/WordPress/WordPress/blob/master...
много вопросов снимется

Худший ответ:
Вот этот шорткод [profile] выводит и сохраняет имя юзера.
Естественно, нужно сделать проверки на заполненность и обрезание лишних символов, но логика должна быть понятна.<?php

function profile_info_shortcode( $atts ) {

	ob_start();	
	
	if ( is_user_logged_in() ) {
	
		global $current_user;
		
		if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'update-user' ) {
		
			update_user_meta( $current_user->ID, 'first_name', esc_attr( $_POST['first-name'] ) );
		
		}
		?>
	
	
		<form method="post" id="user_page" action="<?php the_permalink(); ?>">
			
		    <label for="first-name"><?php _e( 'Имя', 'ay' ); ?></label>
		    <input name="first-name" type="text" id="first-name" value="<?php the_author_meta( 'first_name', $current_user->ID ); ?>" />
			
			<input name="updateuser" type="submit" id="updateuser" value="<?php _e( 'Сохранить', 'ay' ); ?>" />
			<?php wp_nonce_field( 'update-user' ) ?>
	    <input name="action" type="hidden" id="action" value="update-user" />
			
		</form>
		
	<?php	
	}

	return ob_get_clean();

}
add_shortcode( 'profile', 'profile_info_shortcode' );
Вопрос: На Си функции не могут быть вложенными друг в друга?

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

Худший ответ:
Да, правда. Вызовы функций -- могут. А сами функции нет.
Вопрос: Как правильно организовать подключение к серверу с разных стран Европы?

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

Худший ответ:
Установите сервер в той же Франции или Германии
Вопрос: Как добавлять текст к слову между символом?

Лучший ответ:
echo str_replace("[", "[привет|", "У меня есть [красное] и еще [зеленое] яблоко")

Худший ответ:
Если скобки только там где надо менять, попробуте так:$str = 'У меня есть [красное] и еще [зеленое] яблоко';
$text = 'привет |';
str_replace ('[', '['.$text.' ', $str);
Вопрос: Как удалить запись в WordPress, если она постоянно пересоздается?

Лучший ответ:
Похоже на то, что создается она программно, ищите  что-то типа wp_insert_post в коде

Худший ответ:
И проверили бы еще сайт на всякую заразу. Шаблоны, плагины. Ну и версию обновить.
Вопрос: Закон Деметры и Doctrine?

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

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

Для решения задач в другом модуле/домене нет необходимости иметь сущности др проекта/модуля/бандла. Пример в модуле доставки 
не нужно знать ВСЕ о товаре и логике его сбора, нужно знать размеры и название
в этом модуле не нужно знать и о заказе все — только адрес, время. История его обработки и статусы (все это есть в агрегате/сущности Заказ), влияние акций и промо — это знать не нужно, но оно есть!... передавая сущность куда-то вы передаете знания и связываете разные модули
не нужно знать о пользователе много, кроме телефона, имени и адреса


Потому вы можете из БД выбирать только необходимые данные конкретному модулю. Этакие проекции по потребностям. Это есть соблюдение закона Деметры — вы не лезете в другой модуль, вы лезете в инфраструктуру (вселенную), которая даст вам ровно те знания и состояние, которые нужны . То есть за своими данными.. Более того эти знания могут собираться различными способами и не обязательно из реляций доставаться, а могут быть агрегированные в NoSQL виде к примеру.

Крч для одного модуля вы получаете некоторые проекции/данные, которые в этом модуле вы даже не скажете — откуда они пришли, тк нет этих знаний — из персистенс-слоя и все...
Вопрос: Как парсить большие объёмы Yii2?

Лучший ответ:
1. Использовать консольные контроллеры вместо web и установить периодичность его работы. 
2. Использовать очереди. Кидаете задачу в очередь. Консольная команда проходит по всем очередям и выполняет задачу. Схоже с первым вариантом. 
3. Самый не актуальный, но действенный в вашей ситуации - использовать для запросов не объекты и Active Query, а «голые» SQL запросы которые выдают данные в массиве. AR потребляет не мало памяти на объекты. На какое то время вас это спасёт. Но лучше использовать консольные команды. Это больше подходит для подобный задач.
4. Подготавливать денормализованные данные для быстрого запроса в отдельную таблицу СУБД или использовать быстрые NOSQL базы данных. И уже из них считывать ваши данные.

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

Лучший ответ:
Можно еще проще.
https://jsfiddle.net/0fuz5rLj/
<ul>
  <li>
    <p>Adobe Photoshop</p>
    <progress value="0.60"></progress>
  </li>
</ul>

Худший ответ:
Можно и без различных библиотек. Например, так 

snippet