Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как лучше хранить GPS-треки в БД?

Лучший ответ:
PostgreSQL + PostGis. Хранить в виде обычных координат желаемой точности. Возможно выборка любой сложности.
Сейчас у меня база координат занимает более 70гб, выборка координат внутри желаемого полигона занимает примерно 6мс на обычном hdd.
При желании можно треки запихать в виде multiline из которого потом легко вытащить отдельные точки
P.S. связку PostgreSQL + PostGis использует OSM, где база планеты в распакованном виде легко переваливает за 500гб

Худший ответ:
Правильным будет не хранить треки в БД. Сначала ответьте на вопрос (не здесь, а для себя), зачем это нужно. Часто достаточно загружать треки в gpx куда-нибудь на сервер — например, на амазон. А в базе хранить индексы: например, предельно упрощённый LineString, точки начала и конца, какие-то важные вехи, по которым будут запросы. Другими словами, отдельно блобы gpx (в амазоне, в append-only kv-базе и т.п.), отдельно метаданные для потенциально сложных запросов. Геоданные, конечно, лучше хранить в PostGIS, как Fixid ответил.
Вопрос: Какую фото галерею можете посоветовать?

Лучший ответ:
flexbox-сетка в контейнере с overflow-x/y:hidden и парой строк js для стрелок.

Худший ответ:
самый активно пользуемый вариант это coppermine-gallery.net
Вопрос: Почему выключается компьютер, когда вставляешь флешку?

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

Худший ответ:
проверь, происходит ли это вне винды
Вопрос: Хорошая практика для Python?

Лучший ответ:
Какие книги?Вы о чем вообще, 2016 год за окном.Просто берете и пишите код.Берите любую задачу и пробуйте ее реализовать, никакие книги не помогут

Худший ответ:
Сначала простое вхождение в семантику и правила кодирования Python, а уже затем справочники и толстые учебники. Хотя мне лично нравится книга Марка Лутца "Программирование на Python" и Марка Саммерфилда "Python на практике". Но для начала думаю Доусон больше подходит, даже для тех, кто только начинает заниматься программированием...
Вопрос: Система линейных уравнений с одним неизвестным?

Лучший ответ:
Это не система уравнений. Равенство транзитивно.  b = ax = c => b = c. Конец.

Худший ответ:
если b!=c, тогда если a=0, то x=0. 
если b=c, тогда x=-a/b
а теперь посчитайте x, если b=0
Вопрос: Как создать агента в своём модуле?

Лучший ответ:
А в чем собственно вопрос? Делайте как по документации
1) При установки модуля добавляем агент:\CAgent::AddAgent( "\\Your\\Module\\SuperClass::superAgent();", "your.module", "N", 10 * 24 * 3600, "", "Y");
где
"\\Your\\Module\\SuperClass::superAgent();" - код php который должен выполняться (точка с запятой в конце строго!!!)
"your.module" - название вашего модуля
"N" - периодичность
10 * 24 * 3600 = периодичность запуска
'' - первая дата проверки (оставлять пустой)
"Y" - активность агента
2) При удалении - очищаем агенты\CAgent::RemoveModuleAgents("your.module");
3) Если файлы располагаются по канонам d7 ( /your.module/lib/superclass.php ), то ничего больше делать не нужно, если старый - то нужно прописать в include.php автолоадер для вашего класса с агентом

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

Лучший ответ:
Скинь заготовку в песочницу.
А вообще вот
https://jsfiddle.net/47mkkz93/
Обертке display:flex, align-items:center и пофигу кто и какого там размера. Будут стоять как надо.

Худший ответ:
Можно так
Вопрос: Работа с большим объемом данных node mysql?

Лучший ответ:
Вы не смотрели на 13.2.5.2 INSERT ... ON DUPLICATE KEY UPDATE Syntax ?
Можно вставлять записи и на конфликте вставки будет делаться UPDATE. Для 50k записей вычислять те, которых нет без предварительной загрузки их БД, как мне известно - не самый быстрый вариант.
Еще вариант, - можно, залить из в буферную (отдельная таблица для входящих данный, каждая пачка которой  характеризуется уникальным идентификатором) или временную таблицу и потом обработать их уже на уровне БД, хранимыми процедурами или просто запросами, но вряд ли будет меньше операций, чем в первом случае.
UPD. Забыл написать - можно вставлять пачками, подобным образом:INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

Худший ответ:
Возможно, стоит просто присмотреться присмотреться к Elastic'у
Вопрос: Как реализовать простые PUSH-уведомления на сайте?

Лучший ответ:
Воть

Худший ответ:
Push работает только на смартфонах. 
А у вас на скриншоте "HTML5 Notification". Это реализуется в пару строчек JS, но работает только на загруженной в браузер странице. 
https://habrahabr.ru/post/183630/
Если есть потребность уже загруженной странице передать новое уведомление, то дополнительно придется сделать Комет-сервер (обычно сервер на Node.js , а клиентская часть на socket.io)
Вопрос: Можно ли сделать выборку предпочтений в MYSQL?

Лучший ответ:
Вы сами хоть поняли, что написали?

Худший ответ:
используй много-много if
Вопрос: Можно ли использовать стек MEAN для цифрого магазина?

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

Худший ответ:
Можно. Но, как мне кажется, нужно обратить на момент seo. Этот стек предполагает создание SPA приложений, т.е. 
когда страницы генерятся в браузере посредством javascript, что может плохо сказаться на выдаче в поиске. Также еще момент, что потребуется больше времени на разработку, так как придется все писать с нуля самому. Потому, может, стоит остановиться на wp+woocommerce.
Вопрос: Как наиболее просто опубликовать проект Django на DigitalOcean?

Лучший ответ:
У digitalocean есть хорошие рабочие step-by-step мануалы, как развернуть то или иное. Не исключение и django:Ubuntu 16.04, django, postgres, nginx, gunicornUbuntu 16.04, django, nginx, uwsgiКак наиболее просто
Самым простым способом может быть использование преднастроенного образа django. Правда, сам я так не делал.

Худший ответ:
Можно использовать такую инструкцию - https://djbook.ru/examples/62/
Вопрос: Как кастомизировать форму регистрации в Django?

Лучший ответ:
Вместо вывода целой формы {{ form.as_p }}
можешь вывести отдельные поля и как угодно кастомизировать форму{{ form.username }}
{{ form.username.errors }}

{{ form.email }}
{{ form.email.errors }}
..

Худший ответ:
class Meta:
    ...
    help_texts = {
        'username': "Подсказка"
    }
Вопрос: Почему не работает document.getElementsByTagName?

Лучший ответ:
getElementsByTagName - ищет только по названию тэга.
Хотите использовать подобные селекторы - ваш выбор  querySelectorAll 

Худший ответ:
Потому, что это не tagName, а селектор.
Вопрос: План дальнейшего обучения и трудоустройства по C#?

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

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

Лучший ответ:
В настройках Indent Guides включи)

Худший ответ:
оно? Как настроить редактор atom?
Вопрос: Можно ли в OpenStreetMap самому размечать дорогу и общественный транспорт?

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

Худший ответ:
Самодельные карты любого места на земле давно уже рисуют люди на базе спутниковых снимков Гугл-Мапс, пользуясь вики-движком wikimapia.org. Регистрируйтесь - и вперёд! Кроме собственно карты, там можно помечать любые интересные пользователям местные предметы, писать их описания и вешать их фото. Вики-движок делает эту работу коллективно редактируемой - авторские описания (и ошибки в них) исправляются и дополняются в последующих редакциях. Только имейте ввиду, что более-менее посещаемые места давно прорисованы и описаны.
Вопрос: Как отправить кириллицу в запросе request.js?

Лучший ответ:
Попробуйте, отправить её по почте, в конверте с обычно маркой, без всяких там привет.

Худший ответ:
Можно попробовать вместо const напейсать каноничное var
Или так:var str = encodeURIComponent('https://site/привет');
console.log(str); // https%3A%2F%2Fsite%2F%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82
Вопрос: Каким комплексным инструментом можно воспользоваться для преобразования типа «automobiles» => «car»?

Лучший ответ:
сначала упорядочи формулировки
но задача в общем виде просто не решается
в частном - может тебе и стеммера достаточно будет

Худший ответ:
Решал похожую задачу.
В моем частном случае оказалось достаточно словаря синонимов.
Плюс морфология, разумеется.
Вопрос: Serial ATA — это приговор?

Лучший ответ:
Serial ATA = SATA -> типичный SSD имеет SATA -> Profit!

Худший ответ:
Можете.
Уточните только какая версия SATA у вас.
То есть глупо покупать SSD SATA, если у вас SATA3.
Также необязательно покупать SSD SATA3, если интерфейс SATA.
Совместимость будет в обоих случаях, но скорость будет ограничена.
Вопрос: Почему не работает фильтр Vue.js?

Лучший ответ:
Дело в том что в новых версиях vue, в частности, во второй версии Evan You отказался от нативных фильтров, оставив лишь кастомные. Как альтернативу, он предлагает использовать computed выражения. https://vuejs.org/v2/guide/migration.html#Filters

Худший ответ:
Вам нужно что-то типа вот такого `item in array | filterBy(input)` и далее реализовать сам фильтр. Хотя не могу сейчас проверить будет ли работать в таком варианте. Обычная практика использовать вычисляемое свойство, которое будет содержать необходимые элементы и писать сразу вот так: `item in filteredArray`.
Вопрос: Могу ли я получать списки запрета сайтов?

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

Худший ответ:
Я думаю https://dns.yandex.ru/ должен помочь. Выберите Семейный вариант.
Еще https://github.com/ircop/zapret
И vigruzki.rkn.gov.ru/auto
Вопрос: Отменяют НДС для фрилансеров, работающих на иностранных биржах?

Лучший ответ:
Эксперты говорят можно будет не платить с 2019 года.
Как платить НДС при работе с Upwork?

Худший ответ:
ИП никогда и не платил 24 процента
Вопрос: Как подсчитать число правильных ответов в JS?

Лучший ответ:
1. Используй счетчик ( обычная числовая переменная )
2. Чтобы не перебирать варианты Соль соль СоЛь и т.д..... переводи в нижний регистр функцией toLowerCase() и всегда будет соль!var quest = 0;
var ansv;
alert("Отгадайте ещё три загадки.");
  ansv = prompt("На каком языке говорят молча?").toLowerCase();
  if (ansv == "язык жестов" || ansv == "жестов") 
     quest++;
  ansv = prompt("В каком городе спрятались мужское имя и сторона света?").toLowerCase();
  if (ansv == "владивосток") 
  	quest++;
 ansv = prompt("Какая нота и продукт называются одинаково?").toLowerCase();
  if (ansv ==  "соль") 
  	quest++;
	alert("Вы отгадали "+ quest+ " загадок!");

Худший ответ:
Как я понял, такое решение предлагает Александр:var summ = null;

alert("Отгадайте ещё три загадки.");
  var secret1 = prompt("На каком языке говорят молча?");
  if (secret1 == "язык жестов" || secret1 == "Язык жестов" || secret1 == "Жестов" || secret1 == "жестов") {
     alert("Верно!");
	 summ++ //Считаем что первая задача выполнена верно тогда +1
  }
  else {
    alert("Ответ не верен.");
  }
  var secret2 = prompt("В каком городе спрятались мужское имя и сторона света?");
  if (secret2 == "Владивосток" || secret2 == "владивосток") {
     alert("Да, это Владивосток!");
	 summ++ //Считаем что вторая задача выполнена верно тогда +1
  }
  else {
    alert("Не угадали.");
  }
  var secret3 = prompt("Какая нота и продукт называются одинаково?");
  if (secret3 == "Соль" || secret3 == "соль") {
    alert("Правильно!");
	summ++ //Считаем что третья задача выполнена верно тогда +1
  }
  else {
    alert("Нет, не правильно.");
  }
  alert("Сделано задач верно: " + summ);
Потестил, работает. По желанию можно подсчитать сколько задач сделано НЕ верно :)
Пример ниже:var summ = null;
	var summerror = null;

alert("Отгадайте ещё три загадки.");
  var secret1 = prompt("На каком языке говорят молча?");
  if (secret1 == "язык жестов" || secret1 == "Язык жестов" || secret1 == "Жестов" || secret1 == "жестов") {
     alert("Верно!");
	 summ++ //Считаем что первая задача выполнена верно тогда +1
  }
  else {
    alert("Ответ не верен.");
	summerror++
  }
  var secret2 = prompt("В каком городе спрятались мужское имя и сторона света?");
  if (secret2 == "Владивосток" || secret2 == "владивосток") {
     alert("Да, это Владивосток!");
	 summ++ //Считаем что вторая задача выполнена верно тогда +1
  }
  else {
    alert("Не угадали.");
	summerror++
  }
  var secret3 = prompt("Какая нота и продукт называются одинаково?");
  if (secret3 == "Соль" || secret3 == "соль") {
    alert("Правильно!");
	summ++ //Считаем что третья задача выполнена верно тогда +1
  }
  else {
    alert("Нет, не правильно.");
	summerror++
  }
  alert("Сделано задач верно: " + summ + ". Неправильных ответов:" + summerror);
Вопрос: Как решить проблему с миграцией?

Лучший ответ:
Да откуда угодно, конфиг может быть закеширован.
Что мешает поиск по проекту сделать? fuzzy-enigma

Худший ответ:
Попробуйте ещёphp artisan config:clear
Вопрос: Как проверить, установлено ли приложение Инсты на телефоне?

Лучший ответ:
Создаешь iframe, задаешь ему нужную ссылку. В то-же время создаешь setTimeout, в котором открываешь обычную ссылку, если что-то пошло не так. Далее ждешь загрузки iframe, если загрузился, то удали setTimeout. Тем самым, если приложение установлено, то в нем откроется ссылка, если нет, то сработает setTimeout.

Худший ответ:
Есть такое:
https://github.com/hampusohlsson/browser-deeplink
А так вариантов в гугле по запросу android check installed apps хватает
Вопрос: Как правильно сверстать это?

Лучший ответ:
Посмотрите плагин easypin (в примере метки над паромом и башней). Responsive, метки остаются на месте.

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

Лучший ответ:
Добавлять случайный хэш в URL. При шэринге результата уникальный id присваивать. 
Либо вызывать https://vk.com/dev/pages.clearCache при обновлении страницы.

Худший ответ:
1. Нужно для каждой фотографии делать отдельную страницу.
2. Для всех социальных сетей есть документация:Facebook: Отладчик, Документация  ВК Twitter
Вопрос: Как удалить комментарии из кода?

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

Худший ответ:
Если исходники лежат на Вашем сервере и доступны только Вам то не зачем волноваться. Но если Вы передаете исходники заказчику, а в нем содержится секретный код ядра вашей СуперCMS или подобное, то нужно обфусцировать код (такое взломать можно, но сложно). Но на моей памяти есть только 1 случай защиты кода (случай кстати не особо удачный).
Вопрос: Почему в virtual box нет выбора x64?

Лучший ответ:
Не включена аппаратная виртуализация или система хоста 32бит

Худший ответ:
Либо аппаратная виртуализация не включена в биосе (VTx, AMD-V), либо при создании виртуальной машины не выбран тип гостевой ОС.
Вопрос: Как правильно передавать параметры в функцию?

Лучший ответ:
Именованные параметры передают обычно в виде объекта:let remove = () => { console.log('Пример функции'); };

create_alert({
    text: 'Предупреждение системы!',
    addClass: 'zoomInRight alert-danger',
    remove, /* в ES6 можно опустить имя поля, если оно совпадает с именем присваиваемой переменной */
    removeClass: 'bounceOutRight'
});

Худший ответ:
Почитайте тут(раздел параметры, да и всю статью в целом полезно будет) :) думаю всё детально и в подробностях ;)
Вопрос: ООП в C# c точки зрения Алана Кея?

Лучший ответ:
Я посмотрел основные принципы ООП с точки зрения Алана Кея и не могу понять, чего он хотел.
Неудивительно. Изначально ООП было прежде всего идеей и не имело формального описания, такого как реляционная алгебра для РБД. То, что не имеет формального описания может быть по-разному трактовано и понято, или не понято вовсе.Да. Этого нет.
Ошибаетесь. Есть аналог "сообщений" - это методы объектов. Вызов метода - это аналог посыла сообщения. Просто вы не привыкли рассматривать это с такой точки зрения. Например, в Objective C, в котором ООП смолтоковского стиля, так прямо и говорят. В языках с Simula-подобным ООП методы не называют сообщениями, т.к. в отличие от Smalltalk-стиля выбор кода для вызова (обработки метода/сообщения) выполняется компилятором, а не самим объектом.Каждый объект имеет независимую память, которая состоит из других объектов
Пожалуй здесь речь идёт об инкапсуляции.Стоп. Разве это не то, что я написал в пункте 4?
Нет. В пункте 4 вводится само понятие классификации - что среди неупорядоченного набора всевозможных объектов вы выделяете подмножества объектов, "похожих" друг на друга. Здесь ещё не идёт речи о том, будут ли у них общие методы или ещё что-то конкретно. Речь о самой идее выделения объектов во множества по каким-либо признакам. В пункте 5 уже делается заключение, что если уж мы выделили некоторое подмножество объектов, то грех этим не воспользоваться и не задать одно и то же поведение сразу для всего подмножества (грубовато описал, но как то так и есть).Если у меня есть класс Dog, описывающий собаку, то от какого мифического единого общего класса она должна наследоваться?System.Object. Да, вы уже от него унаследовались, прямо или через других предков. С точки зрения среды исполнения не всё чем вы оперируете, является объектом, например примитивные значения. Однако с точки зрения языка можно сказать что int "является объектом" т.к. значение int может быть приведено к типу object. От себя лично скажу, что целесообразность концепции "всё - объект" весьма сомнительна по ряду причин.

Худший ответ:
Насчет шестого пункта. В C# все классы по умолчанию наследуются от System.Object. И ваш класс Dog по умолчанию от него наследуются.
Вопрос: В чем разница роутера Mikrotik от свитча той же марки?

Лучший ответ:
у свича процессор слабее, соответственно ваши пользователи довольно часто будут вам говорить что всё тормозит и не работает, у роутера процессор мощнее и ему легче переварить большое количество соединений

Худший ответ:
Свитч и рутер работают на разных уровнях модели osi
Вопрос: Как оптимизировать базу данных с помощью PostgreSQL для интернет магазина, на моём примере?

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

Худший ответ:
никаких особых преимуществ в данном примере не будет.
Вопрос: Как запретить доступ в NGINX ко всем несуществующим доменам третьего уровня у сайта по SSL (443 порт)?

Лучший ответ:
Всё достаточно банально.
https://nginx.ru/ru/docs/http/request_processing.html
Вот тут расписано как Nginx обрабатывает запросы. Теперь тут сразу понятно на чём Вы встряли, ведь если не сконфигурированный поддомен обращается по порту 80, тут достаточно просто, можно сконфигурировать дефолтный виртуальный хост и в нём к примеру редиректить на основной или запрещать доступ, да вообщем-то как угодно. Но если обращение идёт по 443 по ssl, значит чтобы соединение состоялось нужен сертификат, которого для каждого не существующего поддомена у Вас нет. Выходов из положения несколько.
1. Вот в эту конфигурацию добавить настройку с с самоподписным сертификатом, минусом будет то что если перейдёт человек он увидит что сайт не безопасен и бог знает что может подумать про основной домен) Вдруг он не достаточно образован чтобы понимать почему ему показывается это сообщение и примет Вас за мошенника.server {
listen 443 default_server;
server_name _;
access_log /dev/null;
error_log /dev/null;
return 403;
}
Вопрос, на кой отправлять логи в нули??? Не проще их выключить, что за дикость)
2. Купить сертификат который сразу защищает и сам домен и все его поддомены и прикрутить его туда, в этом случае всё будет так же гладко как и в случае с портом 80, если конечно кто-то не надумает ломиться на домены третьего уровня)))
3. В DNS направить на сервер только те домены и поддомены которые реально есть, в этом случае всем остальным будет показываться вот это.
Читайте больше документации)

Худший ответ:
Если https-запрос уже пришел на сервер, то сервер должен иметь валидный сертификат, иначе в браузере будет выведено предупреждение о невалидном сертификате.
Вариант 1: забить на невалидность сертификата,  все равно отдавать 403.
Вариант 2: получить wildcard-сертификат *.site2.ru
Вариант 3: в NS-записях домена явно прописать все поддомены. На несуществующий поддомен браузер даже не будет отправлять запрос.
Вопрос: В какой программе можно быстро создавать переходы изображения в прозрачность?

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

Худший ответ:
Вы сами себе дали ответ тегами - FIgma.
Если не хочется заморачиваться и изучать груду функционала, в самый раз использовать Figma, потому что в интерфейсе вообще нет никаких сложностей, нужно нарисовать блок - берете прямоугольник и рисуете, надо наложить градиент - заходите в настройку цвета.
Вопрос: Что выбрать: Django или Flask?

Лучший ответ:
джанго
По книге: two scoops of django
Или по туториалу

Худший ответ:
Мне было проще на джанго, у него уже всё готово и остается только на практике смотреть метод за методом. А на фласке мне было сложно, так как требовало отдельно учить ту же sqlalchemy.
Вопрос: Как с помощью .map() превратить массив объектов в объект?

Лучший ответ:
Интересно в первую очередь сделать это с помощью .map()
Никак. Используйте reduce и по-хорошему объект или Map.var array = [
  { id: 1 },
  { id: 2 },
];

const obj = array.reduce((acc, el) => (acc[el.id] = el, acc), {});

console.log(obj); // { 1: { id: 1 }, 2: { id: 2 } }
console.log(obj[1]); // { id: 1 }

Худший ответ:
В вашем коде присутствуют синтаксические ошибки, но все же, вы это имели в виду?var arr = [
{'foo':'bar'},
{'fii':'faa'}
];
var func = arr.map(function(i) {
  	return [i];
});
console.log(func[0]); //Вернет первый обьект
Вопрос: Как правильно сделать свой сервер GIT?

Лучший ответ:
https://about.gitlab.com/ + gitlab ci +  если надо docker
Ищите как настроить, это обширная тема и немало материала по ней

Худший ответ:
1. Создать на сервере bare-репозиторий;
2. Добавить в рабочие копии разработчиков новый remote на этот сервер;
3. В bare-репозитории добавить хук (я использую update), в котором сделать чекаут нужной ветки в нужный каталог;
4. Запустить при необходимости тесты
Вопрос: Как делать запросы к mysql на python3.5?

Лучший ответ:
оформлю уже тогда вместо комментариев =) 
много библиотек, но из последнего для работы с БД мне понравилась 
1. records, её автор Kenneth Reitz автор библиотеки requests.
2. peewee вторая вполне известная небольшая и чем-то похожая на django ORM или Alchemy

Худший ответ:
Свою проблему я решила с помощью MySQLdb.
1. Распарсила json-файл в двумерный список values = [[a1,a2,...], [b1, b2,...], ....]
2. Сформировала строку запросаquery = "INSERT INTO ads_irr_ru_content (col1, col2, .... ,col5) VALUES "  + 
    ",".join("(%s,%s,%s,%s,%s)" for _ in values)
3. Собрала вставляемые данныеflattened_values = [item for sublist in values for item in sublist]
4. Вставила данные:)cur.execute(query, flattened_values)