Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Где практиковать регулярные выражения?

Лучший ответ:
Недавно я столкнулся с задачей.
Есть некий внешний API, который отдает JSON.
Но на тестовом сервере ведутся работы и в него попадают левые данные, нотисы, html и прочнее.
Ответ принимает следующий видNotice: unrecognized option - colour
{"code":200,"id":535829352}
Задача: вытащить корректный JSON.
Сначала подумайте сами, а вот моё решение./**
 * Find JSON in string
 *
 * @param string $string Input string
 * @return array
 */
function findJson($string)
{
    $re = '~\{(?:[^{}]|(?R))*\}~';

    if (preg_match($re, $string, $m)) {
        $result = json_decode($m[0], true);
    } else {
        $result = ['error' => 'invalid_json'];
    }

    return $result;
}

Худший ответ:
Книжку не посоветую.
Удобная песочница для отладки, с подсказками что какой оператор значит https://regex101.com/r/aP3dO0/1
Интересные задачки для тренировки можно найти на codewars, например.  (Нужна регистрация)
Я вот, так и не осилил парсинг всевозможных ютубовских адресов одной регуляркой jsfiddle.net/1j5do56g/1
Вопрос: Как доработать маленький код на JS?

Лучший ответ:
1. Ссылки не нужны, используйте спаны в пагинации<form method="get" id="testForm">
  <input type="text" name="name" class="page" />
  <input type="submit" name="search" id="search" value="Поиск"/>
  <input type="hidden" name="current_page" id="current_page" value="{current_page}">
</form>

<span id="pagination">
  <span class="toPage" data-num="1">1</span>
  <span class="toPage" data-num="2">2</span>
  <span class="toPage" data-num="3">3</span>
  <span class="toPage" data-num="4">4</span>
  <span class="toPage" data-num="5">5</span>
  <span class="toPage" data-num="6">6</span>
  <span class="toPage" data-num="7">7</span>
</span>
2. Такой JS:$(document).on("click", ".toPage", function () {
    var num = $(this).data("num");
    $(".page").prop("value", num);
    $("#testForm").trigger("submit");
});

Худший ответ:
Вы используете jquery? или нужен vanilla.js
Вопрос: Какие языки программирования должен знать специалист по информационной безопасности автоматизированных систем?

Лучший ответ:
С/C++/Python

Худший ответ:
> безопасность
> языки программирования
Тут неязык нужно знать, а способы взлома и защита от них. Ну а так С, Java, SQL. Хаки языков и прочее.
Вопрос: Почему кнопка «Обновить страницу» располагается по-разному?

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

Худший ответ:
Спасибо! Управлялку я нашёл, понял, как работает. Правда, никаких стрелочек вверху при наведении не появляется. Только курсор принимает форму «палец над ссылкой», и появляется всплывающая подсказка.
Невидимый такой орган управления; если не знаешь о его существовании, вряд ли догадаешься.
Вопрос: Какая вторая по популярности ос для веб-серверов?

Лучший ответ:
UNIX-подобные ОС, которые не указаны отдельно(как, например, FreeBSD).

Худший ответ:
Интересная у них статистика... У даже определенных Linux-ов 38% 
А вообще UNIX по их статистике - это все *nix-like (linux, bsd, настоящие UNIX-ы), у которых не удалось определить OS. Если посканить сервера отсюда - https://wappalyzer.com/applications/unix (nmap -O), то там везде Linux-ы с высокой долей вероятности, но дистрибутив определить не удаётся. 
Ещё туда же входят всякие embedded-железки, специализированные http-балансеры, роутеры (которым сайт торчит наружу, в итоге всё сканирование прилетает в него) и прочая nix-based братия. 
В общем-то, результат того, что замаскировать Linux так, чтобы он не сообщал миру снаружи о том, какой он, очень легко.
Вопрос: Какие данные вам были необходимы как разработчику в последнне время?

Лучший ответ:
Нужны были гео — базы для создания справочника стран — регионов…
Использовал гео центр, google maps, парсил homeaway.com

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

Лучший ответ:
Самое простое это выкачать всё через rsync
Более сложный через ftp/scp

Худший ответ:
или просто скопировать ftp--->ftp
Вопрос: Как и как Вы следите за новостями с сфере Ваших интересов и новостями в IT в целом?

Лучший ответ:
Серфинг? Сервисы? Закладки? RSS ? Соц. сети?
Сойдет все, кроме соц.сетей, которые давно оккупированы маркетологами и распиаренными дебилами.
Соц.сети способны только понижать уровень интеллекта пропорционально проведенному в них времени.

Худший ответ:
News Republic - есть клиент на android, куча источников новостей, можно выбрать
www.news-republic.com
Вопрос: Какой из дистрибутивов выбрать для вычислительного кластера?

Лучший ответ:
У нас так устроено:
 - стоит RHEL 6.4 и CentOS 6.4
 - есть сервера с Ubuntu 14.04
 - сеть ethernet 1Gb/10Gb + infiniband FDR/QDR (20/40Gb)
ПО:
- glusterfs на нескольких серверах (для файлопомойки и хомов), отдается по NFS (в основном по IB, но есть клиенты и по 1Gb)
- openldap + kerberos для логинов/паролей и SSO
- сами вычисления основаны на разных библиотеках от OpenMPI до частнофирменных решений.
- развернут Sun Grid Engine для автоматизации задач на кластере
В общем выводы:
1) отдельная сеть под внутренние вычисления 1/10Gb (infiniband)
2) отдельная сеть на доступ ethernet 1/10Gb
3) общая файлопомойка на обе сети
4) SSO на основе kerberos
 Ну и по хорошему, что на кластере запускать - всё равно, лишь бы под задачу подходило...

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

Лучший ответ:
Я на арче столкнулся с таким же ( python3.3, django 1.6, mariadb 5.5).
Помогло следующее:
использование PyMySQL, т.к. гугл подсказал, что mysql-python не работает с python3# pip install pymysql
Далее в __init__.py приложения (INSTALLED_APPS) добавим:import pymysql
pymysql.install_as_MySQLdb()

Худший ответ:
Помогите решить данную проблему на Windows10
Вопрос: Чем должны отличаться stage и prod среды?

Лучший ответ:
Обычно test и prod не должны отличаться хардварно/софтварно, за исключением мощности.
В богатой фирме железо/софт вообще идентичны. Если не требуется идеальное совпадение, в тесте можно иметь меньше винтов, ибо боевая база не нужна.
Задача - на тесте полностью скопировать окружение prod, и в случае проблем, суметь воспроизвести это на нем.
Dev должен более-менее совпадать, в основном версии софта, но это зависит от того, что там происходит.
Опять же, сильно зависит от задачи. Если это боевой сервер, было бы например неплохо на test проверить как работают новые прошивки биоса/рейд контроллера, перед тем как повторять это на боевом.
Если же это только небольшой сайт, то вполне достаточно будет воспроизвести версию ОС и ПО. В общем смотря что крутится.

Худший ответ:
Ни в коем случае тесты нельзя запускать на реальных данных! Если что-то пойдет не так, вы испортите рабочие данные.
Лучше скопируте рабочую базу (если это позволяет размер), замените всякие адреса и телефоны на фейковые, чтобы в случае чего пользователю ничего не отправиось. И используйте ее для тестов.
Если в обще, то стейдж отличается от продакшена:
- включеным дебаг режимом и профилировщиком
- уровнем логирования
- каще всего еще и кеш отключен
- не минифицируются asset файлы для упрощения дебага
- другая база данных
Не знаю, как все, но в нашей команде стейджи с продакшеном находяться на разных машинах. Тесты создают довольно большую нагрузку, которая совершенно не нужна продакшену.
Так же мы на стейдже используем SSD вместо HDD. Для обычной работы приложения обычного диска хватает, а вот на стейдже билды собираються в несколько раз быстрее благодаря ssd.
Вопрос: Помощь в выборе Android смартфона

Лучший ответ:
Самсунги сейчас на высоте, даже их пластмассовые модели отличаются качеством =) А то что Вы на столько чувствительны, что отнимая 25 грам уже телефон становится «легусеньким» и даже в кармане не заметен, то это, мне кажется, Вы преувеличиваете =)

Худший ответ:
Эх, продавались бы у нас Motorola Razr — взял бы себе…
Вопрос: Как отслеживать заходы на сайт по редиректу с другого доменного имени средствами гугл аналитики или яндекс метрики?

Лучший ответ:
Яндекс.метрика->источники->сайты.
IP тут вообще не при чем.
Или если хотите мерить сами и не доверяете заголовкам - редиректите пользователя на ссылку вида domain1.ru/?referrer=domain2 и ловите это дело.

Худший ответ:
Для аналитикса - всё просто. Добавить в редирект domain1.ru?utm_source=domain2.ru&utm_medium=redirect
В аналитиксе в списке источников будет этот отдельный источник.
В метрике скорее всего попадёт в отчет "переходы с сайтов"
Вопрос: Книги по пониманию программирования?

Лучший ответ:
Вот https://ru.hexlet.io/courses/sicp на русском с практикой и с видео.

Худший ответ:
Разжовывать и расставлять по полочкач сам должен ты. Подсознание потом автоматически будет выдавать нужные решения.
Вопрос: Существуют ли туториалы по frontend разработке?

Лучший ответ:
1) htmlbook.ru — мануалы
2) javascript.ru — мануал
3) bootstrap-ru.com/
jquery — anton.shevchuk.name/jquery-book/
3 пункт однозначно лучше на английском, там очень мало написано, а на русском все криво и не полно, аналогично перед штудированием bootstrap изучать less — лучше не lesscss.org
Как видео — очень советую посмотреть events.yandex.ru/events/shri/msk-2012/
В принципе все эти ссылки в 10 в гугле по запросам

Худший ответ:
Нашел неплохой видео курс на youtube.
www.youtube.com/watch?v=2Wenjn0KEKg&list=UUdnFX7mzgup9moXG2fULOog
Только там сходу zen-coding используется и надо быть минимально со знаниями CSS+HTML
Вопрос: Посоветуйте хороший 16-портовый гигабитный свитч

Лучший ответ:
Просто свич: TL-SG1016D
С поддержкой VLAN'ов: TL-SL2218WEB
Около $100 стоят.

У меня такие 8-портовки. Простой больше трех лет, с vlan'ами чуть меньше года. Нареканий нет никаких. Под мои задачи просто идеально подошло.

Худший ответ:
TL-SG2216WEB
www.tp-link.com/en/products/details/?categoryid=223&model=TL-SL2218WEB

Безоговорочно рекомендовать не смогу — единственное устройство подобного класса, которое у меня есть.
Вопрос: Тест на ресурсную деградацию. Какой использовать инструмент?

Лучший ответ:
Системный монитор perfmon.msc, ставите необходимые счетчики запускаете задачу. И стартуете то что будет нагружать машину.

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

Лучший ответ:
Предположу, что это непромытый КИСЛОТНЫЙ флюс. Нарушена технология производства, брак! Явно гарантийный случай, если гарантия не прошла. Данные флюсы очень активны,применяются на поточных производствах. Если их не промыть, то будут разъедать и лак и проводники. Обычно плата приходит в негодность от 2-х месяцев до года. Починке не поддается. Мы в свое время заказывали достаточно большую партию плат-переходников с очень дорогими разъемами, и в течении года все их пришлось заменить. Долго выясняли что случилось, выяснили.

Худший ответ:
Больше похоже на конденсат. Посмотри, не повзрывались у тебя конденсаторы? Как на материнке так и на видеокарте.
Вопрос: Как установить права доступа в Windows Server 2008r2 к каталогу?

Лучший ответ:
посмотри это yadi.sk/d/49SS0GYUJaReh

Худший ответ:
Решили проблему так:
на верхнем уровне дали права только на просмотр и чтение каталогов, а дальше раздавали в зависимости от отдела и каталога..
Вопрос: Screensaver на Javascript?

Лучший ответ:
почитайте вот это, думаю это то, что нужно

Худший ответ:
Может Вам подойдет QtWebKit?
Вопрос: Какие есть визуализаторы дерева зависимостей?

Лучший ответ:
Пользовался graphviz.

Худший ответ:
Вообще для C++ doxygen умеет сам граф зависимостей строить для классов.
Вопрос: Где можно посмотреть популярность ОС и дистрибутивов для серверов России?

Лучший ответ:
вчера была статья на хабре

Худший ответ:
Объясните мне 14% Gentoo. Это вообще как такое могло получиться?
Вопрос: Как спроектировать архитектуру простого форума на PHP?

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

Худший ответ:
Если нет требований к качеству, то хватит одного index.php и пара файлов: в один можно положить подключение к БД и запросы к БД - такие файлы ещё называют моделями, в другой отдельно положить вывод страницы, т.е. html. AJAX точно не знаю куда лучше положить, можно прям в html написать если кода мало(обычно AJAX делается через инструменты фреймворка). В таком случае у тебя получится, что главный файл - контроллер, файл с БД - модель, а файл с html - вид(шаблон).
Твой контроллер сможет делать запросы к БД и выводить шаблон с заполненными данными.
1. Проверяешь не пришло ли что то из формы и какая страница запрошена. $_POST $_GET(надеюсь об XSS ты в курсе)
2. Если пришло, то пишешь в БД, если нет требований по неповторению сообщений.
3. Вытаскиваешь из БД названия тем и заполняешь хедер. Тут нужно будет вытащить только те темы, которые нужно. Если требований нет, то сойдёт where id:$id limit 5; $id=rand(1, 150 000).
4. Поиск. Если пришла строка на поиск нужно сформировать запрос с условием Like.
Можно выполнить поиск текста от начала поля:
SELECT Таблица.* FROM Таблица WHERE Таблица.Поле Like 'текст*'
или в любой части поля - Like '*текст*'
5. Статистика работы PHP. memory_get_usage() - для объема используемой памяти, microtime() - для времени выполнения скрипта. По MySQL microtime() - время выполнения запроса.
6. Постраничный вывод тем. Считаешь число тем, делишь число тем на число тем на одной странице и в зависимости от запрошенного номера страницы выводишь запрошенные темы путем запроса в БД where id<:id $id берёшь из $_GET.
Примерно так. Возможно будет тормозить поиск. В таком случае надо будет либо менять запросы на легковесные(в запросах я не силён), либо memcache, либо sphinx. Возможно что то ещё. 
P.S.
 В реальности  сложные сайты обычно пишут на фреймворках. Например Yii.
Вопрос: PSD макеты + html исходники?

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

Худший ответ:
1) Делайте что то для себя более интересное, более близкое оно тогда как то с душой чтоли верстается.
2) Сложно что то посоветовать, берете то что не кажется сложным да делаете. И коэфицент сложности одностраничник это просто (разные секции похожие элементы), начните с них.
3) В любом браузере есть валидатор кода, в любой команде есть общепринятые стандарты для верстки. Готовый html не говорит о том что он верный или делать надо именно так.
Вопрос: Возможно ли с помощью javascript выполнять вычисления на графическом процессоре?

Лучший ответ:
WebGL позволяет писать шейдеры.

Худший ответ:
Да, возможно. WebCL
Вопрос: Чем бэкапить виндовую машину?

Лучший ответ:
nnbackup + nncron
хотя всё перечисленное можно решить встроенным + cmd

Худший ответ:
backblaze.com
дешево, анлимно, удобно, инкрементально, единственное что первый бекап делает долго.
Вопрос: Каковы перспективы Junior'а в маленьком городе?

Лучший ответ:
Имхо, ни один из пунктов именно вам не подходит. Предложу свой:
6. Продолжайте учить Java, но только не просто читая и решая типовые задачи, а начните свой проект. Не слишком сложный, не нужно писать свой "3Д вижок который сделает революцию" или свою операционную систему, а просто проект который охватывал бы ту или иную сферу, но качественно. Например, напишите клон сервиса Dropbox: серверную часть, веб клиент и Android клиент. Там вам и многоточное программирование, и сервлеты, и БД и UI, и работа с сетью и много чего еще. Только обязательно(!) доведите до конца. Android приложение в ГуглПлей, для сервиса арендуйте домен за 500р в год. И дальше снова начинайте делать новый проект.
Не торопитесь стать джуниором и зарабатывать "деньги", им вы успеете стать еще много раз. Равномерно, спокойно и в свое удовольствие самосовершеснтвуйтесь.

Худший ответ:
Никаких.
Вопрос: Где разместить портфолио веб студии

Лучший ответ:
Несколько интересных ресурсов. Правда это не совсем для web-студий, скорее для дизайнеров.

creattica.com
dribbble.com
awwwards.com
revision.ru — графика


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

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

Худший ответ:
Надеюсь это не домашнее задание. Вот вам упрощенный и  немного корявый вариант игры. Модифицируете его под свои нужды сами - просто лень сильно извращаться :)
И еще пара комментариев:  В Java принято имена переменных (за исключением констант)  и  методов писать с маленькой буквы. ИМХО Всегда блок if заключайте в скобки. Даже если это одна строчка кода.  package wordgame;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Game {

	public static void main(String[] args) {
		new Game().run();

	}

	private static final char[] VALID_CHARACTERS = new char[] { 'а', 'б', 'в',
			'г', 'д', 'е', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р',
			'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'щ', 'э', 'ю', 'я' };
	
	private Set<String> words; 

	private int playerNumber;
	private Scanner scanner;
	private Character playerWordLastChar;

	public void run() {
		words =  new HashSet<String>();
		scanner = new Scanner(System.in, "cp1251");
		playerNumber = 1;
		System.out.println("Игра началась! \nВведите слово!\nДля подтверждения своего ответа нажмите \"ENTER\"");
		nextPlayerTurn();		
	}

	private void nextPlayerTurn() {
		System.out.println("\nХод игрока " + playerNumber + "\n");
		while (!submitTurn()) {
		}

		playerNumber = playerNumber == 1 ? 2 : 1;
		nextPlayerTurn();

	}

	private boolean submitTurn() {
		String word = scanner.nextLine();

		if (word.isEmpty()) {
			
			System.out.println("Введите слово!");
			return false;
			
		} 
		
		char firstChar = word.charAt(0);
		char lastChar = word.charAt(word.length() - 1);
		boolean submit = false;
		
		if(words.contains(word)) {
			
			System.out.println("Такое слово уже было!");
		}
		
		else if (playerWordLastChar != null && firstChar != playerWordLastChar) {
			
			System.out.println("Слово должно начинаться на \"" +  playerWordLastChar +"\"");
			
		} else if (!isLastCharValid(lastChar)) {
			
			System.out.println("Слово не должно оканчиваться на: \"" + lastChar+ "\"");
			
		} else {
			words.add(word);
			playerWordLastChar = lastChar;
			submit = true;
		}
		return submit;
	}

	private boolean isLastCharValid(char lastChar) {
		for (char ch : VALID_CHARACTERS) {
			if (ch == lastChar) {
				return true;
			}
		}
		return false;
	}

}
Еще раз повторюсь - код примитивный, но он должен натолкнуть вас в  правильном направлении.
Вопрос: Как узнать откуда сайт берет данные?

Лучший ответ:
О каких данных речь? Возможно будет достаточно открыть Chrome\Firefox DevTools и во вкладке Network посмотреть какие запросы куда направлены и что содержат.

Худший ответ:
В общем случае - никак.
Вопрос: Как влияют ошибки в консоли браузера на индексацию?

Лучший ответ:
Как влияют ошибки в консоли браузера на индексацию?Никак, они вообще из другой оперы. Не ищите проблему там где ее нет.
Если хотите проверить сайт на проблемы, влияющие на продвижение, воспользуйтесь простым официальным инструментом от google https://developers.google.com/speed/pagespeed/insi... 
Когда все исправили и руки чешутся что-то еще поправить, можете проверить валидатором код сайта и исправить все обнаруженные ошибки и замечания. Наиболее критичны ошибки влияющие на правильный вывод информации на сайте, но их обычно видно невооруженным взглядом. 100% валидный код это достаточно условный фактор, с небольшим весом, но если есть желание то никто не запрещает потратить время и на такого рода оптимизацию. Хотя гораздо важнее потратить больше времени внутренней оптимизации сайта и его контенту. Тостеру, хабру и другим известным ресурсам туча ошибок разметки не мешают находится в топе поисковиков по множеству запросов. :)
P.S.
Еще можете проверить скорость загрузки страниц сайта в инструменте tools.pingdom.com/fpt и сделать поверхностный анализ оптимизации в https://a.pr-cy.ru/.

Худший ответ:
Сама по себе консоль никак не влияет на робота, а точнее говоря - консоль это средство вывода/ввода информации конкретно браузера, она может как присутствовать, так и отсутствовать в браузере. Важно понимать ошибки как самостоятельное явление, не как что то связанное с консолью. Поисковые работы выполняют javascript, но возможно не все, т.к. есть "быстрые роботы", есть другие. Скорее всего, рядовые ошибки не повлияют на ПС, если они не отвечают за вывод основного контента, или не нагружают браузер. Также в консоли могут быть ошибки не связанные с javascript, например подключение CSS файлов, или мета-теги prefetch, или ошибка загрузки изображений, ошибки css не так критичны, как последние два. Второй, если ссылается на внутреннюю страницу, а она отдает статус 4** или 5**, то это может сказаться на индексации или позиции.
Вопрос: Как настроить cascade delete в Entity Framework?

Лучший ответ:
После долгого чтения мануалов по fluent api, оказалось что дело совсем в другом.
Fluent api поддерживает cascade delete по умолчанию, проблема была в том, что нажимая "удалить", представление передавало контроллеру сущность в которой поля public virtual List<Zakupki> Zakupki { get; set; }
        public virtual List<Zakladki> Zakladki { get; set; }
        public virtual List<Vivod> Vivod { get; set; }
        public virtual List<Prodagi> Prodagi { get; set; }, то есть навигационные свойства были null.
Соответственно EF не мог удалить связанные записи потому что не знал какие, до тех пор пока я вручную не включил их в выборку[HttpPost]
        public ActionResult Delete(Partiya partiya)
        {
            BirdKeepingDBContext context = new BirdKeepingDBContext();
            if (ModelState.IsValid)
            {
                Partiya part = context.Partiya
                    .Include("Zakupki")
                    .Include("Zakladki")
                    .Include("Vivod")
                    .Include("Prodagi")
                    .Single(p => p.NomerPartii == partiya.NomerPartii);
                context.Partiya.Remove(part);
                context.SaveChanges();
            }

            return View(partiya);
        }
Остался небольшой вопрос, Include требует строку с именем связанного объекта, но напрямую прописывать, как у меня, как-то не хорошо. Как это лучше записать и вообще может есть конструкции получше чем эта?context.Partiya
                    .Include("Zakupki")
                    .Include("Zakladki")
                    .Include("Vivod")
                    .Include("Prodagi")

Худший ответ:
Используйте лябды вместо строкcontext.Partiya
                    .Include(x => x.Zakupki)
                    .Include(x => x.Zakladki)
                    .Include(x => x.Vivod)
                    .Include(x => x.Prodagi)