Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Тестирование базы данных на PHP (PHPUnit, DbUnit)

Лучший ответ:
Мне в своё время очень помогла разобраться с тестированием книжка Perl Testing: A Developer's Notebook. В подходе к тестированию особой разницы между Perl и PHP нет, так что Вам она тоже может оказаться полезна. Перевода, к сожалению, я по-быстрому не нашёл, возможно она есть только на английском.

При тестировании один из ключевых моментов — нужно постоянно очень хорошо отдавать себе отчёт в том, что именно мы сейчас тестируем. А тестируем мы обычно наш код, а не окружающую среду (вроде базы данных) — в тестах мы предполагаем, что база данных работает корректно, вопрос в том, корректно ли наш код работает с базой данных. Поэтому, да, можно тестировать работу с базой даже без самой базы — mock-нув функции отправляющие SQL-запросы в базу, и в тесте проверяя, что наш код генерирует именно те SQL-запросы, в том порядке и с теми значениями, которые он должен был сгенерировать (а заодно и подставляя тестируемому коду нужные нам данные под видом «ответа от базы на SQL-запрос»). И да, на реальной базе данных этот код может не работать корректно, не смотря на то, что тесты он проходит — просто потому, что он генерирует не те SQL-запросы, которые нужно генерировать для этого сервера БД. Но это не имеет отношения к тестам — они свою работу выполнили: подтвердили, что код работает именно так, как ожидается. А если задача была поставлена неверно, и код должен делать что-то другое — это проблема постановки задачи, а не тестирования.

Барабашка портящий базу — это не проблема тестирования кода. Хотите написать тест против барабашек — сравнивайте в тесте схему базы с эталонной, и правьте тест после любого изменения схемы базы. Но смысла в этом нет.

Совместимость фикстур из тестов с текущей схемой базы проверить очень просто: при запуске теста создавайте тестовую базу данных используя текущую схему основной базы данных, а в фикстурах храните только данные, без схемы таблиц.

Гемор с необходимостью постоянно поддерживать и корректировать тесты для совместимости с новым кодом — он есть, и его не может не быть. Но усилия, которые на это тратятся, с лихвой окупаются пользой от наличия тестов.

Худший ответ:
В дополнение к powerman
Я могу выделить такие ситуации:
1) тест функционала или классов, не имеющих сильной зависимости от внешних сервисов
2) тоже самое, но со слишком обширным использованием DAO
3) интеграционные тексты

В первом случае можно спокойно мокировать запросы в БД или иные внешние сервисы.
Во втором случае по возможности использую обертывание в транзакцию и откат в самом конце теста (методы setUp и tearDown). Если нельзя, то тоже самое что в п.3
В третьем случае делается всё «на живую» в девелоперской среде или использовать тестовую базу и естественно иметь скрипт генерирующий окружение.
Вопрос: Что лучше: Redis или Python dict?

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

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

Лучший ответ:
Дату выхода на DVD запоминайте и заходите на след. день на трекер.

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

Лучший ответ:
Не работает потому, что простые объекты передаются не по ссылке, а значением. Вкратце:// ты инициализируешь переменную str сразу после загрузки DOM
// на данный момент она равна пустой строке
var str = document.getElementById("name").value;

// ты инициализируешь функцию
function NameValidate() {
  // пытаешься получить значение переменной str
  // так как она передалась значением, то сама по себе она не изменяется
  // и до сих пор равна пустой строке
  if (str == ''){
    // а это значит, что все работает правильно
    alert("Введите имя!");
  }
}
Если же мы хотим избежать подобной ситуации, то нам необходимо либо сделать функцию для извлечения этой переменной, либо передавать ее родительский объект.// input - объект, который передан по ссылке
var input = document.getElementById("name");
function NameValidate() {
  if (input.value == ''){
    alert("Введите имя!");
  }
}
или:// str - функция, вытаскивающая свойство из объекта
var str = function() {
  return document.getElementById("name").value;
};

function NameValidate() {
  if (str() == ''){
    alert("Введите имя!");
  }
}
или:function NameValidate() {
  // вытаскиваем значение сразу после клика
  // минус - повторный поиск элемента в дереве DOM
  // каждый раз при клике на кнопку
  var str = document.getElementById("name").value;
  if (str == ''){
    alert("Введите имя!");
  }
}
Респект тебе, что изучаешь JS не вникая в jQuery. А то сейчас столько народу, что и не скажут тебе, что делает getElementById :)
Также, совет: не пиши str == '' Достаточно писать просто if(str)
Это работает потому, что в JS любой тип можно привести к булеву значению. Пустая строка, undefined, null и 0 - это все false. Остальное - true.

Худший ответ:
Респект однозначный за изучение!
Просто вносим строку получения текущего значения name внутрь функции (для отработки по "клику"):function NameValidate() {
  var str = document.getElementById("name").value;
////// тело функции....................
}
Добавлю, что NameValidate() лучше заменить на FormValidate(this.form) и полученную форму проинспектировать на все поля перед отправкой.
Вопрос: Программа «Информационное окно» для компьютеров в локальной сети?

Лучший ответ:
Обычное клиент-серверное приложение. Пишите сервер (работает на какой-то одной машине), пишите клиента (запускаете на 5 машинах с коннектом к серверу). На клиентах создаете обработку всяких нажатий кнопок, очистки полей и т.д. с отсылкой команды серверу. Сервер принимает команду и отсылает ее всем остальным клиентам.
Вот в качестве примера

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

Лучший ответ:
Варианты продажи:
1. Простая передача прав (вопросы поиска покупателя и цены решаются самостоятельно).
2. Направленная передача домена — аналогично, но гарантом сделки выступает посредник (напр. руцентр). Услуга платная.
3. Аукцион.
4. Агент продажи (платно).
В основном продажи идут на аукционах, которых немало. 
Из наших более-менее адекватных:
Аукцион Руцентра, Форум searchengines, Telderi, Webnames, RuskyHost
Зарубежные (хотя с доменом RU — сомнительно): Sedo, Afternic
Из автоматических средств оценки пожалуй Okej, Mysitecost, cy-pr — не самые плохие, но на автоматы не стоит особо расчитывать, определиться с ценой интуитивно по «аналогичным» предолжениям на аукционах и просматривая статистику продаж. Как вариант, запросить бесплатную оценку на форуме searchengines(выше), Domenforum или найти платную услугу оценки/продажи — как на этих форумах так и просто поиском

Худший ответ:
Лучше всего продавать домен - разместить информацию о его продаже на специализированных площадках, таких как: auction.nic.ru
На площадках заодно и приценишься, по чём продают похожие на твой домены.
Вопрос: Как рисовать лого в определенном стиле? Ищу мануалы

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

Худший ответ:
Вы хотите всё и сразу. 

По вашему посту видно, что у Вас есть некоторые проблемы с рисованием, а именно, отсутствие основной базы. Вам нужны манулы не о том, как рисовать логотипы, а о том, как вообще рисовать.
Для начала советую на торрентах найти «Рисунок карандашом» или «Академический курс рисования» (по моему так) и посмотреть/почитать. Там хорошо описаны базовые понятия. После этого разобраться с «плохими манулами» по рисованию логотипов не составит труда.
Вопрос: Безопасно ли устанавливать на разные поддомены разные сертификаты SSL?

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

Худший ответ:
Безопасно. 
Тут важно понимать, что для вас выгоднее или удобнее в данный момент.
Вопрос: Работа для прикладного математика

Лучший ответ:
0. Data mining
1. Компьютерное зрение
2. Нейросети и системы принятия решений
3. Биржевые торговые роботы
4. Крипто-анализ и алгоритмы шифрования данных
5. Системы моделирования физ. и хим. процессов
6. Системы анализа вероятностей и предсказание процессов.
7. Распределенные вычислительные системы и анализ их производительности для конкретных задач.

Худший ответ:
В России и Украине работы по этому направлению довольно мало. По крайней мере, на hh.ru ее почти нет (3 вакансии в Москве по data mining vs несколько сотен по java). Самым проторенным и соблазнительным, с точки зрения порога вхождения, выглядит создание всевозможных скоринг моделей, аналитических систем и отчетов в различных системах (например, SAS) "программирования мышкой". Но, лично мне это не кажется привлекательным.
Я бы посоветовал особо не спешить, и несколько лет развиваться в этом направлении самостоятельно (посмотри в сторону kaggle.com). Основная сложность вхождения в data mining состоит в том, что порог весьма велик. Поэтому джуниором серьезные компании тебя навряд ли возьмут (хотя, всякое может быть). 
Кроме того, в data mining существует огромное кол-во направлений и одним лишь курсом с coursera их все не захватить. Для увеличения кругозора советую посмотреть еще курс лекция профессора Воронцова на ШАД. + изучи ресурс machinelearning.ru/
Вопрос: Как убрать пробелы между блоками (div)? И можно ли последние 3 блока поднять вверх без margin?

Лучший ответ:
Элементам выставлен display: inline-block, таким образом, они ведут себя как строчные элементы. А если между строчными элементами в коде есть пробелы - то пробелы и будут отображаться.

Худший ответ:
Либо пишите без пробелов в коде, либо вставляете без пробелов теги php, если сайт на php.<div ></div><?
?><div ></div>
Вопрос: Qiwi Visa Money Transfer &amp; USD [РЕШЕНО]

Лучший ответ:
Visa Money Transfer работает с любой картой Visa, независимо от валюты.

Худший ответ:
Если карта выдана банком России, Грузии, Казахстана, Украины, Узбекистана или Таджикистана — то да.
Вопрос: Как реализовать меняющийся фон?

Лучший ответ:
Это можно сделать на чистом CSS: jsfiddle.net/isquariel/bumprc7z Вместо цвета можно подставить картинки.

Худший ответ:
Пример, не лучший, но все же
и еще один получше, еще.
Вопрос: Как Вы обрабатываете ошибки в своих ресурсах?

Лучший ответ:
1. Ловить ошибку надо в том случае, если вы ее можете обработать. Иначе выкидывайте из метода
2. В java 7 catch можно объединять catch(NullPointerException | ClassNotFindException)
3. Берите базовый класс ошибки, чтобы ловить все catch(Exception)
Такое кол-во catch нормально, особенно когда с http работают.

Худший ответ:
Еще "экзотический" вариант, можно сделать мапу
Exception => Status
ну или более дженерик, типа Exception => Handler
и все кетчи свернуть в простой вызов мапы. Как-то так.
С мапой удобно если у вас много типичных хендлеров.
Вопрос: Какую память выбрать?

Лучший ответ:
Советую брать самую дешевую, для максимального объема, прироста производительности вы всеравно не заметите.
Все что дает более быстрая память, это прирост в тестах памяти, скажем в графических марках, разницы практически не будет.
Стоит ли за это платить пару тысяч лишних, решать вам.

П.С. сам недавно брал ноунейм память 4х4Гб, отдал 3тыс руб.

Худший ответ:
А KHX1866C9D3K2/8GX на совместимость никто не проверял?
Вопрос: Насколько хорошо сейчас дружат ASP.NET и Mono?

Лучший ответ:
Ждите выхода ASP.NET vNext))

Худший ответ:
Здравствуйте. Проводил аналогичное исследование некоторое время назад. Придется допилить несколько неожиданных мест. Эти проблемы решаются методом гугления эксепшнов.  Люди в целом отвечали, что для внутренних корпоративных приложений работает шустро. Сам ставил asp.net на мак. Покликал, особенных тормозов не заметил, но нагрузочное тестирование не проводил.
Единственный облом Xamarian и VS+R# - это небо и земля. Сравнивать просто нельзя.
Вопрос: Купить «родной» аккумулятор к ноуту, или «универсальный»?

Лучший ответ:
Купите новый аккумулятор на Aliexpress за 20-30$. он хоть и не "родной" но на пару лет хватит.

Худший ответ:
LazyFire только "электронику", стоящую в батарейке, этим не обманешь, она будет считать, что батарейка труп и будет вырубать ноут :(
Вопрос: Интегрировать CMD в проводник windows. Где взять плагин или как написать самому?

Лучший ответ:
В любом более продвинутом файловом менеджере (Total Commander, FAR, multi commander) данный функционал уже есть.

Худший ответ:
Имхо пользование проводником - неудобно. FAR, Windows Commander и т.п. "динозавры", решают гораздо большее число проблем за счет в т.ч. наличия плагинов. Там можно и на FTP как в отдельную папку зайти, и поменять права/стать владельцем каталога и т.д. Кроме того командная строка уже всегда внизу.
Вопрос: Какую периодику стоит читать?

Лучший ответ:
Могу порекомендовать журналы ПРОграммист  и VR-online, есть еще Хакер и Практика функционального программирования, но это на любителя.

Худший ответ:
Что-то читаю из вышеперечисленного, еще есть www.osp.ru — много всяческих разделов, бывает достаточно интересно.
Вопрос: Как настроить описание сайта и категории, выдаваемые поисковиком Yandex и Google?

Лучший ответ:
Категории выбираются примерно по той же логике, что и быстрые ссылки: https://help.yandex.ru/webmaster/search-results/qu... Для них описания в подавляющем большинстве случаев будет браться действительно из description (в отличии от основной выводимой по запросу страницы, про которую сказал выше). Если вам надо выбросить категорию из выдачи, то закройте её индексацию в robots.txt или через мета-тег . Но выгоднее для вас будет не выбрасывать мусорную категорию из индекса, а сменить ей url, а со старого урла мусорной категории поставить 301-ый редирект на какую-то более полезную страницу (на "хорошую и нужную" категорию).
На всякий случай, уточню, что после ваших действий надо будет ждать один или несколько апдейтов до тех пор, пока изменения появятся на выдаче.
Про текст в сниппете можно почитать вот тут: lessons.kostin.ws/yandex-snippet-text.html Обратите внимание, например, на то, что он вообще может браться из Яндекс.Каталога.

Худший ответ:
Описание самого сайта задаётся в description. А вот категорий, на страницах самих категорий. Поменяйте там описание и ждите апдтейта.
Вопрос: Мой сайт посещают зарубежные пользователи, как исправить этот недуг?

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

Худший ответ:
статистику только по одной стране там нельзя настроить.
так что вы можете закрыть на сайте доступ всем кто не из россии (или, что сложнее, не показывать им счетчик, но показывать сайт)
для закрытия доступа используйте .htaccess и GeoIP, если на вашем хостинге он установлен.
или в коде сайта используйте php + geoip
Вопрос: Регистрация похожего домена наказуема?

Лучший ответ:
Сама по себе регистрация и использования домена не наказуемы.
Другое дело,что потом яндекс предъявит претензию, мотивировав ее тем,что домен схож до степени смешения,что приводит к "репутационному ущербу и убыткам" яндекса.

Худший ответ:
Сгораю от любопытства, что за аббревиатура то такая)
Вопрос: Как к простой HTML форме с ее PHP обработчиком добавить Rest API?

Лучший ответ:
а в чем проблема то?
надо реализовать взаимодействие формы (на js) и сервера (на php) в соответствии с Rest (get получение, post создание и т.п.)
ну и CSRF к форме прикрутить.

Худший ответ:
И что значит "CSRF к форме прикрутить"?
Можете минималь пояснить как хоть как нибуть заюзать этот rest? Здесь
https://github.com/MikeBrickman/check-billing-info...
Вопрос: Как настроить правильно WINS и VPN роли?

Лучший ответ:
Во-первых, сетевое окружение слабо связано с WINS. Кроме того, WINS в настройке не нуждается, практически вообще.
Во-вторых, сетевое окружение -- это зло. Все ресурсы сети должны быть прибиты к серверам и доступны только оттуда, никакого трафика между клиентами быть не должно, всё только через сервера.
В третьих, так как у вас VPN, то ваш VPN-сервер будет т. н. multihomed server, ибо для каждого подключившегося VPN-клиента создаётся отдельный сетевой интерфейс. В этой конфигурации виндовый браузинг не работал никогда -- списки сетевого окружения строятся в рамках одного сегмента L2. Иными словами, максимум, что у вас увидят VPN-клиенты в сетевом окружении -- это себя и сервер, больше никого.

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

Лучший ответ:
@marshinov
Хочу уточнить, что если дело происходит в России, то установка просто GPS экономически невыгодна, так как с 1 января 2015 вступит в силу закон об обязательной установке Глонасс на все транспортные средства (N 395-ФЗ "О Государственной автоматизированной информационной системе "ЭРА-ГЛОНАСС"). 
Есть опыт использования Глонасс/GPS с автопарком в ~4500 машины. Первое время использовали АвтоГраф - при количестве машин более 20 их клиентским ПО пользоваться невозможно. 
Сейчас пользуемся BN-Complex от М2М - хороший сервер, легкая интеграция с приборами от других производителей, но огромная стоимость. 
Для Вашего случая оптимальной по цене будет разработка своего сервиса, принимающего данные от устройств и сохраняющего их в БД. Есть опыт разработки таких сервисов и UI к ним, могу помочь Вам. Можем списаться по скайпу: malicious98

Худший ответ:
Если у вас есть опыт в разработке такого софта, то вариант написать/допилить - то, то мне нужно. Стоимость и сроки?
Вопрос: Есть ли разница seo : голый сайт без CMS, либо wordpress?

Лучший ответ:
Разницы нет если у вас у каждой страницы свой уникальный: Title, Keywords, Description... 
CMS нужна для удобного манипулирования данными! без знаний и навыков программирования, а также для того, чтобы не плодить десятки страниц с одинаковым кодом.

Худший ответ:
Для СЕО пользуйтесь самой точной информацией от поисковика:
help.yandex.ru/webmaster/controlling-robot/html.xml
CMS никак не поможет пробиться в топы. Пишите как умеете и как дешевле. Вложитесь в рекламу.
Вопрос: Как пишутся игры под Андроид вроде Talking Tom Cat?

Лучший ответ:
Вот тут подробно обсуждают говорящего кота тома и как сделать такое же. Под ios, но я думаю Вы разберетесь без проблем, к тому же кокос доступен и на андроиде.
www.cocos2d-iphone.org/forum/topic/13942

А еще тут 
stackoverflow.com/questions/4744827/make-applications-similar-to-talking-tom-cat

Худший ответ:
Если так интересно, то можно разобрать файл с приложением (обычно это просто zip) и посмотреть ресурсы.
Обычно, это набор заранее заготовленных анимаций.
Вопрос: Как избавится от анимации конца списка в iphone, ipad?

Лучший ответ:
$(document).on('touchmove',function(e){
  e.preventDefault();
});
//uses body because jquery on events are called off of the element they are
//added to, so bubbling would not work if we used document instead.
$('body').on('touchstart','.scrollable',function(e) {
  if (e.currentTarget.scrollTop === 0) {
    e.currentTarget.scrollTop = 1;
  } else if (e.currentTarget.scrollHeight === e.currentTarget.scrollTop + e.currentTarget.offsetHeight) {
    e.currentTarget.scrollTop -= 1;
  }
});
//prevents preventDefault from being called on document if it sees a scrollable div
$('body').on('touchmove','.scrollable',function(e) {
  e.stopPropagation();
});
или
$('body').on('touchmove', function (e) {
         if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
 });

Худший ответ:
Итак, я разобрался. Суть в том, что есть на сайте страницы со скроллингомм контента и без. На тех страницах где скроллинга нет, при событии touchmove использую метод  e.preventDefault();
Таким образом метод e.preventDefault(); не влияет на родной скроллинг браузера , при этом метод e.preventDefault(); не дает тянуть сраницу вниз когда дошли до конца списка (проблема о которой я писал собственно).
Вопрос: Изменение атрибута src у изображений (jQuery)?

Лучший ответ:
У вас должен быть прописан класс для img.
Например: 

Далее добавляете event для этого класса, где меняете src:
$('.my-img').click(function() {
 $(this).attr('src', '...');
}

Худший ответ:
 var toggle = 0;
 $('.thumb_img').click(function() {
 if(toggle == 1) {
 $(this).attr('src', $(this).attr('src').replace('img/full/', 'img/'));
 var toggle = 0;
 } else {
 $(this).attr('src', $(this).attr('src').replace('img/', 'img/full/'));
 var toggle = 1;
 }
 })


То, что вы видите — мои жалкие попытки сделать toggle. Не работает, разумеется. Есть идеи?
Вопрос: (MySQL) Где и что исправить ?

Лучший ответ:
искать в стороне соединения _того чем соединяетесь_ с mysql
либо принудительно делать SET names utf-8 или как оно там

Худший ответ:
Кодировка сто пудов. Вопрос только где. В php или базе.
Вопрос: Поиск похожего предложения

Лучший ответ:
Может помочь метод шинглов. 
Каждое предложение разбиваем на ряд n-грамм, например, триграмм. Строим хэши для триграмм. Таким образом каждому предложению соответствует несколько хэшей, для триграмм их будет k-2, т.е. в Вашем примере 8. При совпадении хэшей проверяемого предложения с хэшами какого-либо предложения из базы больше некой границы, скажем, 50%, будем считать предложение «копипастным».

Худший ответ:
Я бы начал разбивать по предложению, которое переводил бы в регулярку и пробивал бы по базе куда вносил текст. Так же в одну бы регулярку все не вставлял разбил бы по порядку с эффектом точности. Базу можно использовать например MySQL (SELECT MYSQL regexp и т.д.)
Вопрос: Как выводить только определенное количество символов из переменной?

Лучший ответ:
Если вас интересует именно строка то вот так:$new_var = substr($var, 0, 6);

Худший ответ:
Если вас интересует именно строка то вот так:$new_var = substr($var, 0, 6);
Вопрос: Знания каких алгоритмов и паттернов проектирования могут потребоваться для прохождения собеседования на позицию веб-разработчика?

Лучший ответ:
алгоритмов
Графа сортировать вас не заставят, так что Рецептурного справочника Томаса Нимана должно хватить.паттернов проектирования
Хотя бы 1-2 из каждой группы.
citforum.ru/SE/project/pattern

Худший ответ:
алгоритмов
Графа сортировать вас не заставят, так что Рецептурного справочника Томаса Нимана должно хватить.паттернов проектирования
Хотя бы 1-2 из каждой группы.
citforum.ru/SE/project/pattern
Вопрос: Как сделать сортировку JSON массива PHP?

Лучший ответ:
$json = 'ваш json';
$array = json_decode($json);
$array = $array['channel_type']['1']['schedule'];

function comparator($one, $two)
{
    $one_time = strtotime($one['start']);
    $two_time = strtotime($two['start']);

    if($one_time == $two_time)
    {
        return 0;
    }

    return ($one_time < $two_time) ? -1 : 1;
}

uasort($array,  'comparator');

Худший ответ:
для начала json_decode, а потом все просто через usort
Вопрос: Как эмулировать трафик на сайт?

Лучший ответ:
Гм. man siege и man ab.

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