pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как организовать vpn для серверов в облаке?

Лучший ответ: Не совсем понятно, какая свзяь между количеством серверов и необходимостью шифрованного канала между этими серверами? OpenVPN прекрасно справится с этой задачей, сделаете для каждого сервера сертификат, он будет получать строго определенный IP из выбранной вами «приватной» сети, маршрутизация тоже поднимется на автомате. Только вот зачем?

Худший ответ: Если вы хотите
Хочется чтобы подстоединиться к VPN и все сервисы на всех купленных серверах стали доступны по tcp напрямую. 

То тогда вам нужно связать все серверы с одной точкой (или специальным отдельным сервером или возложить эту обязанность на один из имеющихся серверов), и к ней уже целяться по VPN.
Как связующее звено — OpenVPN вне конкуренции, подключаться к VPN серверу можно как по тому же OpenVPN, так и по классическим PPTP/L2TP (Особенно если есть win* клиенты), либо, как предлагают выше — по ssh-tun.



Это если у вас сервера НЕ имеют внутренней сети. Если имеют — то всё проще, на один из серверов устанавливаем VPN сервер, прописываем маршрутизацию нужную и пользуемся.
Вопрос: Вложенные комментарии для Джанго?

Лучший ответ: Обязательно django приложение? Если нет, возьмите disqus.com

Худший ответ: Я написал свои основываясь на github.com/ericflo/django-threadedcomments. Честно говоря от оригинала в них очень мало осталось. Уже пол года как собираюсь их выложить в свободное плавание, да оформить никак руки на доходят :( Демо у меня нету, но в моём профайте есть ссылка на мой сайт, там используются эти комментарии. Из вышеназванного модуля я выкинул возможность анонимно комментировать (тем более это было реализовано двумя моделями) и добавил отправку сообщений AJAX и WYSIWYG BB-editor. Сам я не скоро соберусь оформить этот модуль к сожалению, так что если хотите можем вместе обсудить их причёсывание.
Вопрос: Стоит ли изучать c#?

Лучший ответ: Конечно стоит. Я, например, выучив С# свободно пишу на Javascript и на Java. Главное начните, потом перейти на что-то другое не будет проблемой.

Худший ответ: Ну тысяч двести четыреста тысяч рублей у топов, больше не получите.
Вопрос: Под что легче программировать: под IOS или под Android?

Лучший ответ: Все зависит от того какой язык програмирования вам ближе. 
Objective-C очень хороший язык, после Java, конечно, было неожиданностью увидеть его синтаксис, но как оказалося, все очень просто и интуитивно. За пару месяце можно освоить, до уровня написания кода без книжки. Под Android,  на моих курсах менеджеры, через полтора месяца пишут клиент к своему блогу.
Что касается разработки под Android и iOS, то впринципе уровень сложности примерно одинаковый, благодаря xCode разработка под iOS весьма увлекательное занятие, для Android прийдется поплясать с Studio. 
Единственный минус iOS необходимость на этапе обучения Мака, что не всегда по карману.

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

Лучший ответ: Я бы на вашем месте сочетал приятное с полезным.
Выберите направление и готовьтесь к экзаменам параллельно проводя тесты в домашней лабе.
MS 070-687 или 070-688, если хотите заложить хороший фундамент для дальнейшего погружения в Win Server, поверьте, в клиентской винде очень много фитч.
CCNA (icnd1 icnd2) - Сети/Cisco, must have
По иксам я бы на вашем месте ориентировался на Fedora/RHEL
В целом, изучив хоть что-то дальше самостоятельно поймете куда двигаться.

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

Лучший ответ: брать выгоднее всего 4 ТБ диски, самые дешевые
про надежность читать блог бекблейза
https://www.backblaze.com/blog/

Худший ответ: Так и хочется написать ...Продам датацентр, недорого.....
давайте считать,  www.raid-calculator.com
берем 6 раз по 8 дисков емкостью 3Тб, собирам из них большой ZFS pool (чтобы zfs себя хорошо вела, ей надо оставлять свободное место, берем 7 раз по 8 дисков)
т.к. скорость записи будет не очень большой, думаю хватит аналога raid6, позволит и данные не потерять и во время ребилда спать спокойно и накладные расходы не столь велики как на зеркала....
результат должен быть примерно такой 
gal.redsquirrel.me/images/house_projects/server_ro...
и не следует класть миллионы файлов в одну директорию....
Вопрос: В чем сейчас пишут 8-битную музыку?

Лучший ответ: Существуют VST-синтезаторы, имитирующие 8-битное звучание: triforce, basic64 и прочие.

Худший ответ: >Современная, естественно, пишется уже не в 8 бит
Кто вам такое сказал?
Пишут, в основном, в LSDJ на gameboy. И на спектрумах пишут до сих пор, и на амигах.
При отсутствии нужного железа имеет смысл обратить внимание на трекерную музыку.
Вопрос: Есть ли у Вас Arduino? Если да, то что Вы с ним делаете?

Лучший ответ: На мой взгляд, ардуинка хорошо подходит в качестве такого "разветвителя интерфейсов". Ибо GPIO в компьютерах отсутствует напрочь, LPT порт тоже нечасто встретишь. А тут 16 ног, могущих работать на вход, выход, как аналоговые входы-выходы... Снабдив ардуинку каким-нибудь интерфейсом, от простого USB до WiFi и Ethernet - можно через компьютер что-то включать-выключать, или измерять, или ещё что....
Ну например - понадобилось вам замерить скорость вращения колеса, которое крутит ваш хомяк. Можно сидеть и считать обороты, а можно приделать оптический или механический датчик, завести это дело в ардуину, посчитать, отфильтровать, передать на комп =)
А можно датчиков накупить и сделать модель сегвея. Или квадрокоптер. Или танк с управлением по блютуфу....
Мне нравятся ардуины. У меня их штук 10, наверное.
Если будете покупать - берите версию Arduino nano v3 - у неё встроен преобразователь USB-UART, и для начала работы с ней нужен только лишь Mini USB кабель.
Китайцы продают сейчас третьи версии по совершенно неприличной цене в 5.5 долларов. Они заменили дорогую FTDI на ее дешёвый аналог.

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

Лучший ответ: От си далек, но, думаю, вот так:char string[size];
...
if (string[strlen(string)-1] == '~') {
    ...
}

Худший ответ: оба ответа правильные.
не забудьте подключить
Вопрос: Человеко понятное логирование cron-заданий?

Лучший ответ: Подождите, так вы знаете время, когда это происходит? Почему нельзя просто посмотреть, что именно запускалось в этот момент?
Крон же всё пишет в syslog. grep CRON /var/log/syslog ну и найти нужное время.

Или у вас настолько большой крон, что там по сто заданий в минуту запускается?

Худший ответ: 1. У процессов запускаемых по крону родительский процесс называется CRON и его ppid соответствует процессу cron. Пример:

root       514     1  0 авг.10 ?    00:00:00 cron
...
root     21227   514  0 17:30 ?        00:00:00 CRON
root     21228 21227  0 17:30 ?        00:00:00 /bin/sh -c sleep 1

2. Нагрузку на CPU конкретным процессом можно получить командой ps u -p <pid>

Таким образом, ваша задача сводится к тому, чтобы в вашем крон-логгере:
1. Вычислить все процессы, у которых имя родительского процесса — CRON.
2. Для этих процессов собрать нагрузку на CPU.
3. Красиво вывести в файл.

Надеюсь, это поможет.
Вопрос: Что нужно знать для создания роботов?

Лучший ответ: <ol>
    <li>Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.</li>
    <li>Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.</li>
    <li>Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому и Второму Законам.</li>
</ol>

Худший ответ: Для начала можно Lego Mindstorms попробовать.
Вопрос: Как перестать быть эникеем?

Лучший ответ: начни с суппорта у провайдера местного

Худший ответ: Как я получился админом (краткий список мест работы)
1 студент монтажник домонета(тянул витую пару по крышам и подьездам/ночной техсаппорт на телефоне - вырос до помошника админа, познакомился с линуксом и сетями
2 эникей в разный фирмах (до 200 компьютеров) настраивал радачу инета на линуксе, корпоративную почту и тд
3 админ в фриланс фирме (ставили LAMPы почту прокси и тд на заказ с elance)
4 админ в хостинг провайдере/регистраторе доменов (поддержка огромного колва линукс серверов )
Вы можете попробывать варианты:
1 Интернет провайдер - вырастите в админа сетевика
изучаете дальше сети и стремитесь к CCNA и далее
2 Хостинг провайдер - вырастите в линукс админа
учитесь ставить LAMP, настраивать почту. днс фтп и тд.
Вопрос: Как организовать рисование в постоянном контексте памяти в MFC?

Лучший ответ: CDC, инициализировать как CreateCompatibleDC от конечного CClientDC
и CBitmap, создать как CreateCompatibleBitmap от того же CClientDC и выбрать в созданный CDC.
Рисовать в CDC как обычно, потом копировать из него с помощью BitBlt.

Худший ответ: www.codeproject.com/Articles/33/Flicker-Free-Drawi... Ковыряйте работу CMemDC, на готовом коде возможно будет проще понять.
Вопрос: Как запустить одновременно несколько веб-приложений под node.js?

Лучший ответ: Надо поднимать nginx и создавать в нем два домена, каждый будет проксировать свое приложения. Нодовские приложения придется переместить с 80 порта на что-то незанятое (каждое на свое). Примерный конфиг для одного такого приложения:upstream app1 {
    server 127.0.0.1:3003; # порт, который слушает приложения
}

server {
    listen 80;

    # черновики для разных серверов, раcкомментить нужный по необходимости
	
    # home box
    #set $apppath /home/hogart/projects/app1;
    #server_name app1.local;

    # beta
    #set $apppath /home/hogart/app1;
    #server_name app1.kitmanov.name;

    # production
    #set $apppath /home/hogart/app1;
    #server_name app1.info;


    root $apppath;

    # раздача статики
    location ~ /style|js|img/ {
        root $apppath/public/;
        gzip on;
        gzip_static on;
        gzip_types text/css application/x-javascript;
        gzip_proxied no-store no-cache private expired auth;
    }

    location / {
        proxy_pass http://app1; # из upstream (см. выше)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr; # удалить, если приложению не нужен реальный IP юзера
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; # удалить, если приложению не нужен реальный IP юзера
        proxy_cache_bypass $http_upgrade;
    }
}

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

Лучший ответ: Просто проверкаif (проверяем состояние кнопки) {
	// Запускаем что-то
}

Худший ответ: if ( $('button').hasClass('disabled') ) {
   return false
} else {
    // скрипт
}
Вопрос: Что нужно для разработки клиент серверного приложения на Android?

Лучший ответ: я не верю в html движки под android(дико тормозит webview ) ... изучите лучше что то кросплатформенное и пишите сразу для android и ios

Худший ответ: phonegap.com
Приложение за 5 минут на коленке html+js
Вопрос: Права на статью на форуме?

Лучший ответ: считаю, что нужно. Поскольку здесь важны не только права автора, но и права форума на этот текст. А вам сложно сделать дать одну ссылку на форум?

Худший ответ: Участник форума при регистрации всегда соглашается (иначе не зарегистрируется) с правилами. Такое согласие имеет определенную силу — публичная оферта. Так, вот, среди правил могло быть, что автор все права на свои публикации передает администрации форума.
Вопрос: Несколько вопросов по Scheme и языкам функционального программирования?

Лучший ответ: Смотря какую цель ты ставишь перед собой. Обычно подбирают инструмент под задачу, а не наоборот. Изучать ради изучения - не самая лучшая идея. Но знать основы функциональщины никогда не повредит. 
Да и важно понимать, что в функциональном стиле можно писать практически на любых языках, а не только на чисто функциональных.
1) Схема очень проста, но непривычна. Прочитай SICP, отличная книга по программированию в целом.
2) Почти никаких. Так уж вышло, что она не особо популярна в прикладных областях. Ну а в самом Racket можно выбирать разные диалекты, посмотри там.
3) Эрланг, в силу устройства самой платформы, отлично подходит для быстрых асинхронных сетевых приложений (и никакого коллбечного ада). Для скалы есть хорошие веб-фреймворки: Play 2, Lift, etc. Для кложы не так много, но последние 2 - это JVM, соответственно, можно использовать многие Java-либы.
4) Питон никуда не ориентирован. Что мешает комбинировать разные парадигмы? Просто в питоне всё есть объект. Это облегчает ООП, да. Многие типы данных там мутабельны. Но и функциональный подход там тоже часто применяют (декораторы, например - частое явление). Map'в и reduce'ы тоже присутствуют, плюс, есть целый пакет functools. И numpy.
В общем, почитай SICP =)

Худший ответ: Может не совсем по вопросам отвечу:
из этого списка изучал Clojure и Scala, ну и Racket немного. Оба вполне годные для повседневного применения. Оба JVM-hosted языки. На Clojure вполне можно писать как web, так и на Android. На Scala пытался что-то по Web ковырять. Советую оба, ну или любой из них.
Вопрос: int и Integer

Лучший ответ: Насколько я знаю, то значения от -128 до 127 находятся в пуле объектов java машины, поэтому имеют один адрес в памяти, а вы объекты сравниваете через ==, т.е. по ссылке

Худший ответ: А вот и он — тот самый кэш:

www.grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java#573
Вопрос: Где ошибка .htaccess в laravel 5?

Лучший ответ: Откуда вы такие беретесь?
Почему просто нельзя взять и установить по офф. гайду?
Вы мазохисты?
1) В корне не должно быть никакого .htaccess. Только 1 .htaccess и только в public/
2) сайт открывать либо site/public , либо правильно настроить сервер, чтобы DocumentRoot смотрел в public/
3) Можно использовать просто php artisan serve, если не можете настроить сервер.

Худший ответ: С корня у тебя все передается в паблик. А настраивать наверное надо внутри скриптов. Ты же пути там прописываешь?
Вопрос: Организация кода, паттерн, php?

Лучший ответ: Можно посмотреть как реализовано у других с ошибками.

1. Получать ошибку отдельным методом. Например: mysql_error — получение текста ошибки последней операции.

2. И ваш способ со ссылкой. Например: fsockopen — 3 и 4 аргументы передаются по ссылкам и содержат код и текст ошибки соответственно.

Но первый мне нравится больше — не надо изменять интерфейс существующих методов.

Худший ответ: Ну можно например так: 
class Parser 
{
protected $_messages = array();
public function parse($a)
{
$this->_messages['message key'] = 'some message ...';
/// some code;
return $b;
}

public function getMessages()
{
return $this->messages;
}
}

$parser = new Parser();
$parser->parse($a);
$messages = $parser->getMessages();
Вопрос: Какой из php-фреймворков наиболее подошел бы для реализации «прокси» (php стучится к API, собирает данные и на их основе генерит статичный html)?

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

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

Лучший ответ: str="hello world"; for ((i = 0; i < ${#str}; i++)); do printf '%x' "'$(expr substr "$str" $i 1)'"; done

Заменяет все символы строки их кодами.

Худший ответ: Если нужен хеш:
$ echo «hello world» | md5sum
6f5902ac237024bdd0c176cb93063dc4 -
Вопрос: Как вернуть домен у NetworkSolutions?

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

Худший ответ: загран пасспорт всегда прокатывал.
Вопрос: Надёжно ли питание видеокарты через переходник?

Лучший ответ: Если не путаю, 6-пиновый разъем для видюхи обеспечивает мощность 120 Вт, или 10А ток. Разъем питания для HDD - порядка 1А.
Да, видюха заведется. Но что будет под назрузкой - никто не гарантирует. 
Видеокарта будет стабильно работать от 6-пинового разъема, который идет от хорошего БП, безо всяких переходников.
В случае вашего БП ("Мощность 1000Вт. И самое главное есть кабель 8 pin!") - оптимально найти такой переходник 
с 8 пинов на 6

Худший ответ: Зависит от мощности+качества БП и прожорливости видюхи. В целом да - в 90% случаев работать будет нормально.
Вопрос: Какую книгу почитать по PHP, чтобы писать актуальный код?

Лучший ответ: www.phptherightway.com
Оно же в формате книги: https://leanpub.com/phptherightway/

Худший ответ: "Правильные манеры" - понятие очень расплывчатое. Однозначно нужно сразу смотреть в сторону Unit-тестирования (можно как с применением, так и без TDD).  
В целом про подходы приминительно к PHP неплохая книга PHP. Объекты, шаблоны и методики программирования  (Мэт Зандстра)
Очень полезная и позновательная книга Рефакторинг. Улучшение существующего кода (Мартин Фаулер)
Думаю, что многие будут советовать "банду четырех", но считаю, что она слишком тяжела для начала. Скорее, как настольный справочник-шпаргалка.
Что касается PHP7, то над этой версией сейчас еще ведется активная работа, в бумаге стоит ждать не раньше финального релиза.
Вопрос: Что дает ширину сайту?

Лучший ответ: У body ширина 1024px стоит же.

Худший ответ: Если я правильно понял, то вот эту самую ширину дает возникающий слева скролл, т.к. страница становиться длинной.
Вопрос: Пул периодических задач на сервере

Лучший ответ: unix way — положить в /var/run/ pid файл и проверять его наличие. при наличии не стартовать задачу
4 разных задачи — 4 pid файла, не стоит их смешивать, если они четко разделяются, а не просто 4 разных потока одной задачи.

Худший ответ: ps aux | grep script.sh
не?
Вопрос: На чем писать парсер сайтов? на PHP или Ruby?

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

Худший ответ: Пожалуй хватит Пыха
Вопрос: Какое выбрать решение для интеграции CRM & CMS & e-mail маркетинга ?

Лучший ответ: CRM выбирайте на свой вкус, но что касается отправки писем, вы смотрите не в ту сторону. Вам нужны не массовые рассылки, а так называемые transactional emails. Для этого нужно использовать совершенно другой тип сервисов - Mandrill от Mailchimp'a или Sendgrid. Рекомендую Mandrill, у которого бесплатный пакет позволяет отправлять до 12000 писем в месяц.

Худший ответ: Есть решение RegionSoft CRM + сервер сценариев для этой CRM. Посредством сервера сценария создаете необходимую интеграцию с сайтом, а сама CRM умеет слать письма, в том числе красочные HTML.
Вопрос: Организация прямого соединения между двумя клиентами под контролем сервера

Лучший ответ: vpn сделайте им и не придумывайте велосипеды.

Худший ответ: Hamachi сделаем виртуальную (5.*.*.*) сеть для работы через P2P VPN используя UDP траффик.

Проходит через NAT.
Вопрос: Как при быстром многократном клике по кнопке обрабатывать только первый клик — jQuery?

Лучший ответ: var clicked = false;

$('.button').on('click', function () {
    if (clicked) {
        return;
    }

    clicked = true;

    // animate
});

// далее, на animation success ставим clicked = false обратно.

Худший ответ: disable кнопке проставлять нельзя? или не помогает?
Вопрос: Какой язык + движок + IDE (или частично) для рзработки 2D игры (не платформера!) выбрать?

Лучший ответ: Qt/C++ и QtCreator в роли IDE
И развитый GUI создает, и движок для плоской отрисовки хороший,
и аппаратное ускорение OpenGL поддерживает.

Худший ответ: Можно попробовать cocos2d-x JS/Lua c их собственным IDE + есть редактор (CooStudio) для визуального создания игровых окон (и не только).
Из плюсов - очень легко сделать игру. Правки код (lua/javascript) подхватываются на лету. Кроссплатформенность и бесплатность.
Вопрос: Аргументация использования hardware роутера в офисе?

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

Худший ответ: Всегда между ограниченным  решением на хардваре я выбираю роутер на линукс centos.
Гибче, шире, быстрее.
Вопрос: Post c домена на другой домен?

Лучший ответ: можно. указывайте в action нужную ссылку и все.

Худший ответ: Если вы делаете обычный POST, не аяксом, то тут конечно же не нужен CORS, подставляйте в action формы полный урл и все будет работать.
Вопрос: Отдается заголовок 404, но страница отображается?

Лучший ответ: Оффтоп: Зачем было скрины замазывать, если в консоли и так видно домен сайта? :)

Худший ответ: Проблема в том что страница возвращает 404.
Вот ответ от сайта:Request URL:http://chehl.ru/page/2/
Request Method:GET
Status Code:404 Not Found
Сайт возвращает 404 даже если прямо перейти на вторую страницу
Вопрос: Подробная литература о JS?

Лучший ответ: https://learn.javascript.ru/
Больше ничего не нужно.

Худший ответ: 
Я был науч. редактором текста этой книги при переводе, так что вычитал её обстоятельно... (1080 страниц).
Посмотрите там (по ссылке) 131 отзывы на книгу тех, кто нею пользовались.
Стоит, конечно, неразумно дороговато.
Вопрос: Реально ли определять по ip адрес с точностью до района города (Москва)?

Лучший ответ: У гугла есть очень точная, но к сожалению не публичная база. В google maps api v2 можно получить точную координату (если у вас есть ключ), либо через v3, но в ней нужно поизголятся, так как в лоб координату пользователя не дают.
О альтернативных сравнимых бзах не слышал. GeoIP не предоставляет достаточно данных.

Худший ответ: В общем случае нет — у провайдеров использующих NAT или L2TP/PPTP один и тот же внешний IP могут получить клиенты из разных концов города.

Для географической привязки обычно используется информация от сотовой сети или о вайфайных точках.
Вопрос: Бывают ли мышки с док-станциями?

Лучший ответ: У меня Logitech 557, заявленное время работы на двух батарейках - 1 год, может работать только на одной в любом гнезде. Так что, если вас напряжет смена батарей раз в год, то можно под контакт одной из батареек подложить бумажку, и когда сядет одна, спокойно вытащить бумажку и продолжить работать.

Худший ответ: Вероятнее всего такие и есть, но если подумать это не очень выгодно производителям. Это маркетинг... Посмотрите на алиэкспресс, может там повезет.
Вопрос: Версионирование mysql

Лучший ответ: ну кладите на SVN в отдельную папку sql-файлы, с патчами для таблиц.

Худший ответ: Посмотрите на dbdeploy.com
Вопрос: Yii. Как в контроллере использовать свои функции?

Лучший ответ: Что-то мне подсказывает, что свои методы лучше (правильнее) реализовать в МОДЕЛИ. Это не будет противоречить MVC. А уже из контроллера вызывать методы модели.
Также можно вынести в компонент.

Худший ответ: Лучше использовать модель для хранения своих функций.
А контроллеры должны быть худыми.
Например для получения пользователя по id модели User можно реализовать статически:<?php
class User extends CActiveRecord {
...
static function get($id){
        return self::model()->findByPk($id);
}
...
Можно будет вызвать как <?php print_r(User::get(нужный ид)) ?>
Только не путать static с public