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

Лучший ответ: Шифровать не получится. Plain text.
Надо понимать что основная причина шифрования паролей пользователей в базах - не потенциальный риск "хохо у нас сольют базу, но пароли не подберут" - а просто кармическая ответственность т.к у подавляющего большинства людей пароли в разных сервисах и почте совпадают.upd смежный вопрос:
Какой из способов безопасного хранения критически важных переменных оптимален?

Худший ответ: Вы не должны их хранить.
Пользователь даёт доступ вашему приложению с таким то id доступ к таким то своим данным. Всё, пока пользователь не отзовёт права у вашего приложения, он может использую  access key приложения получать доступ к тому, что он вам разрешил. 
Выше речь про приложения vk и fb, в standalone-приложениях немного иначе но суть также.
Вопрос: Объединение более 10 удаленных офисов в одну сеть с помощью mikrotik?

Лучший ответ: Ну для начала, задайся вопросом а нужен ли тебе L2? всё таки L2 очень тяжёлый и не любит задержки и большой джитер.
Если L3, то я бы построил на IPIP туннелях, а там где нету внешнего IP поднялбы sstp, а маршрутизацию реализовал бы с помощью OSPF. и уже после работы сети взвесил все за и против, нужен ли тебе IPSec.
Если там СКУД, так может шифровать только СКУД и не более чем или может такая информация никому не нужна?!
Скажу так OSPF с 10 точками можно настроить за один час.
с IPSec чуть подольше

Худший ответ: У меня похожая схема - Центральный Офис, в нем Cloud Core, в филиалах pfSensы. Все друг с другом дружат при помощи GRE-over-IPsec. Потенциально ещё и OSPF можно прикрутить, но пока и на статике все друг друга видят, схема стабильная.
Раньше был чистый IPsec, там сложности были с политиками, и филиалы только офис видели, а чтобы друг друга - пришлось бы жуткие монстро политики делать. IP-IP тоже хорошо, если OSPF не нужен будет.
Вопрос: Какой должен быть подход мышления для изучения программирования?

Лучший ответ: Мне не понятна суть вопроса. В чем конкретно проблема? Тут мы видим:
* Пытаюсь учить JS. 
* Последнее, что делал, проходил скринкаст Кантора по созданию чата // какой тебе чат, ты же еще язык не выучил.
* где узнать про те самые "базовые алгоритмы, структуры, подходы...
Что за месиво, что за каша, что ты умеешь сейчас? Для чего тебе нужно программирование? Проект? Фриланс? Хобби?
Все программирование начинается с С++, забей на JS, забей на веб. В первую очередь читай Герберт Шилдт "Полный справочник по C++" Читай, но не весь и постоянно пробуй это даже если скопируешь, изменишь и скомпилишь будет большой толк. Когда ты начнешь свободно ориентироваться в языке, то просто держи под рукой online-справочник по cpp типа www.cplusplus.com/reference   . Все теперь ты владешь сpp.
Далее два путиСпортивный
знания тут - e-maxx.ru/algo  учишь алгоритмы kpolyakov.narod.ru/school/probook/cpp.htm
практика тут - acmp.ru www.e-olymp.com/ru codeforces.com  - решаешь задачки, кстати именно в таком порядке посещаешь эти сайты, от простого к сложному. Там есть темы задач, выбрал простую тему, взял задачу, пытаешься найти нужный алгоритм на e-maxx, либо в гугле, только не надо задавать вопросы сюда, как решить этот "гроб".Проектный (прикладной)
Тут ты смотришь на жестокий мир, и поражаешься почему никто до меня не сделал эту гениальную необходимую всем программу. Сюда так же входят те кто пишут игру своей мечты. Тут придется читать о проектировании, устройстве чего-либо аналогичного, учить всякие API. Лучше стать добрым программистом и начать с изучения cmake, git, github. А потом уже учить всякие API.
Однажды тебе скажут, что с++ плохо и есть что-то лучше. Всякие решеточки, змеи, острова и прочая ересь. Не верь им, все чем они лучше это возможность написать код быстрее жертвуя производительностью. Используй другие языки когда это действительно оправдано, не гонись за модой. А самое главное использование C# никогда не оправдано.

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

Лучший ответ: feedback.yandex.ru/?from=pdd правильная ссылка на саппорт pdd (внизу страницы есть). 
Почту использовать в этом месте не правильно. 

Можете мне домен написать, посмотрю что с ним.

Худший ответ: Если вы об api, то примерно следующее
<record domain="d.ru" priority="" ttl="3600" subdomain="m" type="A" id="5693626">ip</record>


Whois нормальной информации не дает.
Т.е. все примерно также как nslookup…
Вопрос: Есть задачи по Vue.js?

Лучший ответ: Как вариант: https://github.com/codedokode/pasta/blob/master/js...
Можно попробовать реализовать только какую-то часть описанного приложения.

Худший ответ: https://codepen.io/login2030/pen/VrxgPe
https://codepen.io/login2030/pen/jaxJxO
Ну и могу подкинуть идею для простецкой CRM по учету статей для сайта) Я сам такую буду писать для себя. Сейчас всё это хранится в гугл докс эксель и там это вести просто неудобно.
В общем есть список всех сайтов, сайты можно удалять, добавлять, редактировать. У сайта есть информация о том, за сколько его купили, и сколько потратили на статьи. Так же есть информация о том, сколько на нём заработали.
На странице каждого сайта есть список дохода - в этом списке откуда пришел доход и его количество. И список статей - в этом списке у каждой статьи есть 2 статуса - прошла ли она проверку на плагиат и выложена ли на сайте.
Внутри статьи есть само поле статьи, изменение её статуса - выложена ли на сайте, изменение статуса по плагиату - прошла или нет и сколько статья стоила
Так же есть раздел статистики по сайтам - сколько на них потрачено, сколько заработано за день, неделю, месяц, год.
Если сайт окупился - появляется зеленая галочка на его карточке, если нет - галочки нет.
Роутинг, идентификация администратора, всё делает Vue на клиенте. Сервер выступает только в роли REST API.
Это еще предварительный функционал, так сказать, просто как идея для реализации)
Чтобы не ломать голову над версткой можно воспользоваться чем-то вроде:
https://vuetifyjs.com/ или https://bootstrap-vue.js.org/
Вопрос: Как архивировать файлы c++?

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

Худший ответ: Используйте https://zlib.net
Вопрос: Как в reactjs получить json из вне?

Лучший ответ: Можно примерно такgetInitialState: function() {
	return {
		data: []
	}
},
componentWillMount: function() {
	fetch('http://jsonplaceholder.typicode.com/comments')
		.then((res) => {
			res.json().then((data) => {
				this.setState({
					data: data
				})
			})
		})
		.catch((err) => {
			console.log(err)
		})
}

Худший ответ: Реализовал следующим образом
Скидываю готовое решение: import React from 'react';
import $ from 'jquery';

class App extends React.Component {
   render() {
      return (
         <div>
            <Header/>
            <Content/>
         </div>
      );
   }
}

class Header extends React.Component {
   render() {
      return (
         <div>
            <h1>Title</h1>
         </div>
      );
   }
}

class Content extends React.Component {
    constructor() {
        super()
        this.state = {
            data: []
        }
    }
    componentDidMount() {
        $.ajax({
            url: "http://jsonplaceholder.typicode.com/users",
            type: "GET",
            dataType: 'json',
            ContentType: 'application/json',
            success: function (data) {

                this.setState({data: data});
            }.bind(this),
            error: function (jqXHR) {
                console.log(jqXHR);
            }.bind(this)
        })
    }
    render() {
        return (
            <table>
                <tbody>{this.state.data.map(function (item, key) {
                return (
                    <tr key={key}>
                        <td>{item.name}</td>
                        <td>{item.email}</td>
                    </tr>
                )
            })}</tbody>
            </table>
        )
    }
}


export default App;
Вопрос: Как исправить оставшиеся ошибки Asterisk?

Лучший ответ: Судя по логу, у вас загружаются все модули, но их конфиги не настроены. Отключите всё неиспользуемое, добавив строки noload => имя_модуля.so в файл modules.conf

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

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

Худший ответ: Cессии хранятся на сервере, а хранить их очень накладно не только из-за занимаемого места, но и из-за тяжелого поиска в разросшейся базе. Хранить сессии долго — довольно тяжелая задача даже для Facebook.
Вопрос: Как слить списки в Python?

Лучший ответ: zip(a, b, c)
[list(l) for l in zip(a, b, c)] #если нужны именно листы внутри

Худший ответ: x = [a, b, c]
илиx = []
x.append(a)
x.append(b)
x.append(c)
Вопрос: Как правильно возвращать JSON с контроллеров Laravel для API приложения?

Лучший ответ: 1. Для того чтобы какие-то поля модели не отображались нужно использовать переменную hidden, с помощью нее мы указываем какие поля не должны отображаться в JSON ответе.protected $hidden = [
        'type_id',
        'created_at',
        'updated_at',
    ];
2. У каждой модели вы должны указать свои поля которые должны быть скрытыprotected $hidden = [
        'type_id',
        'created_at',
        'updated_at',
    ];
3. Category::with('posts.comments')->get();
4. Для этого также есть специальные переменные и методы.
Также доступен такой метод public function getDateAttribute () {
        return date('Y-M-D', $this->date);
    }
public function getUrlAttribute () {
        return url($this->slug);
    }
этот метод выведет $post->date в нужном формате
чтобы такой метод был доступен в json нужно указать его в protected $appends = [
        'url',
        'topic',
    ];

Худший ответ: Использую laravel-fractal. В последней версии league/fractal, на основе которого и построен spatie/fractalistic, добавили тип primitive и все стало на свои места. 
Конечно, не обошлось без танцев с бубном: я сделал для нужных моделей трейт Transform, который добавляет метод toApi (хотя лучше бы назвал transform), берущий класс из переменной $transformer:
И пришлось написать макрос для collection ларавельной, тоже toApi(). Хотя без обеих этих фич можно обойтись, используя fractal($items, $transformer).
В остальном же полностью доволен.
Вопрос: Какие есть IDE для питона не на Java?

Лучший ответ: Все, что не помещается на 10 екранов - разбивается на модули и файлы
vim с плагинами в файлах на 15к тоже будет спотыкаться
Логика в мускуле - нонсенс
Дело вполне может быть в пк. И если idea еще как-то параллелит обработку, то другие - нет

Худший ответ: А как Sublime себя ведет? Написан на питоне. На 15к строках не пробовал, но до 5к точно у меня не тормозил никогда. За него можно не платить. Раз в 10 или 20 сохранений, просто окошко выдает с предложением зарегистрировать. Меня не сильно это парит. Но можно и заплатить. Функционал не режется. Плагины не тормозят, для SQL есть. 
Если еще быстрее надо, то видимо надо на плюсах что-то вроде KDevelop (C++).
Вопрос: Какую фриланс биржу выбрать для сетевого администратора?

Лучший ответ: Удаленная настройка сетевого оборудования Cisco, Mikrotik, D-link, Ubiquiti.Если вы желаете работать в этом направлении то фриланс биржа вам не поможет .
Заказы по системному администрированию на бирже это настроить веб сервер, разобраться с виртуалками, и.т.д.
Т.е чисто система, и никаких сетей.
Заказы по вашему профилю случаются на биржах крайне редко, это скорее исключение.
Такие вещи надо искать не на бирже, а в своем регионе. В большинстве случаев удаленно такие вещи не делают.
Требуется личное присутствие на объекте.
Поймите одну простую вещь - сети удаленно не настраиваются.
А на биржах в основном удаленная работа предлагается.
Поэтому забудьте про биржи.

Худший ответ: Нет таких бирж почти все настраивается при личном присутствии. Ну как вы будете удалённый вайфай линк то настраивать? 
В целом инфраструктура движется к унификации и надеюсь скоро будут просто безликие желёзки с линуксом на борту без этого ужасного интерфейса иоса или микротика
Вопрос: Что выбрать для десктопного приложения на Java?

Лучший ответ: Сам Oracle активно продвигает будущую замену Swing — JavaFX 2. 

По словам разработчиков Oracle на конференции JavaOne, там много хороших вещей типа стилизации UI с помощью CSS. Соответственно, приложение может выглядеть одинаково на всех платформах.

Худший ответ: Уже 4-е года пишу на SWING, пока хватало для всех запросов пользователей и даже извращенных. Есть много интересных библиотек которые обеспечат как красивость так и функциональность, например 
balloontip для красивых тултипов есть, далее jdrawing-0.3.1 для создания формы для рисования (но я бы что-то другое поискал). Для графиков jfreechart можно использовать. Еще постоянно появляются уже готовые оттестированные компоненты: деревья в таблицах, деревья с чекбоксами, и т.д… 
Если написать свой UI будет выглядеть одинаково для всех платформ. 

Все от запросов зависит. 
Например, уперлись когда-то в создание риббона, и нашли только упоминания о библиотеке flamingo которая позволит это на Swing сделать, в то же время на SWT это уже реализовано

JavaFX 2.0 красивее будет конечно, чем SWING и проще как показалось в реализации, но пока не все еще можно написать на JavaFX из того что можно сделать на SWING. Пока радует то что появилась возможность интегрировать компоненты JAvaFX в SWING. Сразу появляетя куча идей о том, что можно добавить интересненького в проект: чат, отправку на email (HTMLEditor используя из JavaFX), написать скрепиша и т.д… + радует то, что в JavaFX в рамках основного приложения на SWING можно сделать самостоятельные приложения на JavaFX.
Вопрос: Из сетевика в программисты, какое направление выбрать?

Лучший ответ: Ну видимо или в "совсем неизвестные дали" - т.е. в любую область. Либо все-таки задействовать багаж в виде опыта в предметной области. 
То есть если бы речь шла о бывшем бухгалтере - то наверное ему было бы комфортнее в разработке прикладного бухгалтерского ПО, сметчику - сметного ПО и т.п. 
Для сетевика - yet another cacti? -))

Худший ответ: Идите в девопсы.
За счет знания линукса срежете кучу углов.
Вопрос: Куда податься ASP.NET программисту?

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

Худший ответ: Иди в тестировщики
Вопрос: Как очистить корзину через консоль на unix?

Лучший ответ: ~ - обозначает домашний каталог текущего юзера.

Худший ответ: ~ = /home/текущий_пользователь
Вопрос: Где искать логи для mstsc?

Лучший ответ: Вот поэтому адресу прогуляйтесь там лежат ip адреса к которым в соединялись используя команду mstsc: HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client

Там и посмотрите

Худший ответ: В реестре
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\
Вопрос: Что почитать по архитектуре приложения?

Лучший ответ: Читай DDD от Эрика Эванса и паттерны корпоративные от Мартина Фаулера.
Переходи с Yii на ZF2 или SF2 чтобы писать реально что-то сложное.

Худший ответ: Пятый слой, возможно, называется сервис? Который в MVCS.
Вопрос: Zyxel keenetic

Лучший ответ: Каким образом в Keenetic это сделать?

Худший ответ: А ему какая разница сервер ли это провайдера, или Ваш прокси сервер?
Вопрос: Градиент дёргается в конвульсиях, что делать?

Лучший ответ: а где его наблюдать? У меня ничего не дёргается

Худший ответ: Ооокей, кажется, это только моя проблема, поскольку ни у кого кроме это не проявляется. Всем спасибо, кто хотел помочь.
Вопрос: Как правильно кодировать url с русскими символами в Ruby?

Лучший ответ: # encoding: utf-8
require 'uri'

puts URI::encode 'www.example.com/index.htm?id=текст'


У меня работает, MRI 1.9.3

Худший ответ: Решил проблему. Сначала нужно конвертировать url из UTF-8 в Windows-1251:
require 'addressable/uri'

url_string="http://www.podshypnik.info/index.php?zid=bearing_info&standart=gost8338&bearing=28К".encode('Windows-1251','UTF-8')
url=Addressable::URI.parse(url_string)
url=url.normalize
puts url

В итоге получается правильно
www.podshypnik.info/index.php?zid=bearing_info&standart=gost8338&bearing=28%CA
Вопрос: Какие аргументы в пользу использования транзакций в бд?

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

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

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

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

Лучший ответ: https://habrahabr.ru/post/312022/
https://habrahabr.ru/post/313234/Но у меня нет вообще ни опыта ни представления о SPA.
обычно нужно хотя бы основы узнать прежде чем идти работать за деньги. Вы хоть представляете что там творится в 2017? Потянете ли вообще.

Худший ответ: По-моему наиболее простой уровень вхождения у vue.js, вот есть tutorial по созданию простого SPA на нём:
https://medium.com/@oleg.agapov/basic-single-page-...
Вопрос: Как начать тестирование сайта?

Лучший ответ: Selenium - на базе обычных юнит-тестов, с ассертами ("сколько пальцев видишь?", "на месте ли кнопка?"). Они медленные, поэтому гонять оптимально ночью, вместе с интеграционными (API, сложные сценарии с данными). Они интеграционные, поэтому покрывать нужно реальные сценарии, т.е. функциональные блоки. У нас, например, тестировщики пишут тест-кейсы (текст вида: "Пойди туда - получишь то."), а по ним программируются автотесты, т.е. точно так, как бы проверял человек. Неплохо бы помимо логов при падении делать скриншоты. 
Чем больше покрытие - тем лучше, хотя нужно как-то балансировать, чтобы не чинить их 50% времени от разработки новой фичи =)
Юнит тесты гонять каждый коммит (в маленьком проекте можно руками перед коммитом, а в большом - силами CI после каждого коммита).

Худший ответ: Интересуют вопросы: Как вообще должно выглядеть тестирование?(теста на каждый блок\модуль сайта, или на каждую страницу, или на целый сайт),
Тут как пожелаете. Конечно в первую очередь нужно написать тест на критичные бизнес-процессы.
Затем на менее критичные и т.д. на сколько позволяет время и бюджет при каждом обновлении сайта запускать тесты или раз в день\неделю, 
По хорошему, нужно запускать при каждом изменении, но тут все зависит от того, какие именно были изменения.
У нас автотесты бегают принудительно каждую ночь на свежесобранной чистой среде. + по запросам комитовкуда тесты пишут о своем успехе\проблемах, и кто читает этот "лог". 
Тут надо понять, каким образомы вы собираетесь их запускать. Существует куча фреймворков Тестранеров. 
У них обычно есть методы логирования результатов тестов. Но есть и фреймворки для сбора отчетов типа Alura
Вопрос: Почему такая низкая посещаемость на сайте?

Лучший ответ: Начнем с того, что у вас ни тайтла, не дескрипшена. Почитайте про базовую сео оптимизацию

Худший ответ: 1. Как минимум, все плохо с дизайном. Очень плохо. Он:
а) будто вынурнул из начала нулевых,
б) слишком яркий и кричаще-безвкусный,
в) отбивает всякое желание на нем находиться.
Будет лучше поставить Wordpress, купить или выбрать бесплатный подходящий плагин. Пусть яркий, но минималистичный и соответствующий эпохе. Ах да, и забыть о своем увлечении CSS, пока кто-то уж очень матёрый не возьмется вас обучать.
2. У вас всего 160 страниц и нет ни одной страницы без проблем по части SEO.
Как-то так.
Прежде, чем любая поисковая система начнет показывать ваш контент, он должен быть оптимизирован. А о других источниках - соц.сетях в частности - вы пока не удосужились побеспокоиться. Так откуда же должен взяться трафик?
3. Форум - это плохая идея. Лучше делайте блог и развивайте свои социалки, чтобы был траф и люди оставляли комментарии под записями в соц.сетях и под самими материалами на сайте. Никакого форума.
Искренне вам советую для начала: 
1. Сохранить свои материалы где-то на компе или в облаке.
2. Взглянуть на сайт в последний раз и... снести все к чертовой матери.
3. Затем поставить Wordpress, выбрать красивый и удобный шаблон (вы можете даже пробить в поиске [free] foodblog wordpress themes).
4. Попросить любого знакомого веб-разработчика установить вам бесплатный ssl-сертификат Lets Encrypt, поменять настройки в рамках панели управления и в консолях для вебмастеров (вижу, что вы еще в Яндексе регистрировались, а как насчет Гугла?), поставить перенаправление на одну-единственную версию сайта с www и https (программист поймет, а вы не заморачивайтесь).
5. Его же попросить вам сделать карту сайта и сделать файл robots.txt с инструкциями для поисковых роботов.
6. Установить базовый SEO-плагин типа YOAST, чтобы оптимизировать каждый из ваших материалов.
7. И еще разобраться в SEO. На блогах Texterra и Netpeak, например, есть куча детальных гайдов для новичков. Вот.
Вопрос: Как скрыть текст на карте OSM с помощью CSS?

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

Худший ответ: display:none !important; пробовал?
Вопрос: Как сделать что бы при наведении на ссылку другой элемент изменился?

Лучший ответ: Если это дочерний элемент, то 
a:hover .block {}
Аналогично для соседних и т.д.
Если элементы не состоят в CSS-родстве, то JS

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

Лучший ответ: apteka.ru/assets/ru/img/23feb/foot_pic_left.jpg
apteka.ru/assets/ru/img/23feb/foot_pic_right.png
apteka.ru/assets/ru/img/23feb/pic_left.jpg
apteka.ru/assets/ru/img/23feb/header_pic_right.jpg
apteka.ru/assets/ru/img/23feb/holiday_pic2.jpgтыц

Худший ответ: вот этим потыкайся
www.telerik.com/fiddler
Вопрос: Что нужно изучать после изучения php(включая ООП) для больших проектов?

Лучший ответ: "Серьезный уровень" не стыкуется с CMS. Надо знать современные CMS краями (что бы понимать что есть на рынке), что бы писать хорошие CMS используя framework или писать сам framework.
Если у Вас возник такой вопрос - "Вы еще не знаете php и ооп". 
Практикуйтесь. Больше пишите, изучите популярные решения типа yii2 и laravel. Почитайте что нового в php7. Напишите свою cms для начала, на базе полученного опыта прийдет понимание того, что Вы еще не знаете.

Худший ответ: Если изучили паттерны проектирования - переходите к микро-фреймворкам.
Сводка фреймворков по скорости - здесь.
Я бы рекомендовал fat-free framework.