<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.8.4" -->
<rss version="0.92">
<channel>
	<title>Outsourcing stories</title>
	<link>http://alexlebedev.com/blog</link>
	<description>Alexander Lebedev writes about software development and outsourcing</description>
	<lastBuildDate>Tue, 31 Mar 2009 04:15:27 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Python переходит на Mercurial</title>
		<description>Гвидо ван Россум окончательно выбрал Mercurial в качестве системы контроля исходного кода для разработки Python.  [Оригинал новости](http://mail.python.org/pipermail/python-dev/2009-March/087931.html)

Что ж, как я писал в комментариях про git, можно ожидать существенного расширения экосистемы mercurial за счет связанных с python проектов.  Скорее всего, эффект будет не меньший, чем от перехода Ruby on ...</description>
		<link>http://alexlebedev.com/blog/python-switches-to-mercruial/</link>
			</item>
	<item>
		<title>Обзор Review Board &#8212; есть ли польза от инструмента для рецензирования кода?</title>
		<description>[Review Board](http://review-board.org) – специализированная система для поддержки процесса рецензирования кода (code review).  Изначально родилась как внутренняя разработка VMWare, но через некоторое время была передана в open source.  Некоторое время назад наша команда попробовала использовать Review Board и я хочу поделиться результатами этого эксперимента. 

## Процесс работы ##



Основным рабочим ...</description>
		<link>http://alexlebedev.com/blog/review-board-review/</link>
			</item>
	<item>
		<title>Django и контроль доступа с человеческим лицом</title>
		<description>Давайте поговорим о безопасности.

Существует два самых распространенных подхода к описанию ограничений доступа в информационных системах.  Первый -- нельзя ничего, кроме функций, явно указанных как разрешенные.  Второй -- можно все, кроме явно запрещенного.  Ни один из подходов не является однозначно лучшим, выбирать нужно в зависимости от особенностей конкретной ...</description>
		<link>http://alexlebedev.com/blog/django-nonpublic-middleware/</link>
			</item>
	<item>
		<title>Mercurial, полет нормальный</title>
		<description>Не так давно я [обосновывал](http://alexlebedev.com/blog/git-or-mercurial/), что git лучше, чем Mercurial.  К сожалению, невозможность увязать LDAP-авторизацию иначе, чем через WebDAV, поставила крест на использовании git.  WebDAV оказался непригоден для транзакционных операций с большим числом файлов, репозиторий постоянно приходил в некорректное состояние.  Примерно через неделю разборок с WebDAV нам ...</description>
		<link>http://alexlebedev.com/blog/mercurial-flying-fine/</link>
			</item>
	<item>
		<title>Требуются веб-разработчики в Тольятти, $2000/мес.</title>
		<description>**Вакансии закрыты, спасибо всем откликнувшимся!**

---

В связи с повышением спроса со стороны потенциальных заказчиков, мы объявляем набор веб-разработчиков.

Нас 3 человека, находимся в Тольятти, работаем в области аутсорсинга около 5 лет.  Клиенты из США, Канады, Европы.  Как фирма не оформлены, планируем сделать это в ближайшем будущем.  В данный момент ...</description>
		<link>http://alexlebedev.com/blog/looking-for-developers/</link>
			</item>
	<item>
		<title>Идиомы и анти-идиомы языка Python</title>
		<description>Недавно наткнулся на полезную, но немного устаревшую статью
[«Python Idioms and anti-idioms»](http://docs.python.org/howto/doanddont.html)

Давайте разберем ее применительно к сегодняшней реальности.

## from module import *

Цитата:

> `from module import *` is _invalid_ inside function definitions.

> ...

> While it is valid to use `from module import *` at module level it is usually a bad idea. ...</description>
		<link>http://alexlebedev.com/blog/python-idioms-and-anti-idioms/</link>
			</item>
	<item>
		<title>Мысли вслух: Git или Mercurial</title>
		<description>Выбираем систему распределенного контроля версий (DVCS).

В целом надо сказать, что git и Mercurial считаются двумя лучшими представителями распределенных систем контроля версий.  Оба достаточно хороши и отлично решат наши задачи так что практическая разница между ними невелика. 

Плюсы Git:

 1. [Локальные бранчи](http://whygitisbetterthanx.com/#cheap-local-branching).  Это очень полезная возможность.

 2. Большая популярность ...</description>
		<link>http://alexlebedev.com/blog/git-or-mercurial/</link>
			</item>
	<item>
		<title>Почему консультанта найти проще, чем человека в штат</title>
		<description>Дополнение к посту ["Мифология (Наемный рабочий vs Консультант)"]( http://victorronin.com/2008/08/19/mifologiya-naemnyj-rabochij-vs-konsultant/), развенчивающему некоторые распространенные мифы о недостатках консультантов по сравнению со штатными сотрудниками.

Хорошего консультанта привлечь на порядок проще, чем нанять хорошего сотрудника. Хотя и дороже.

Почему так?

1. Для удержания хороших сотрудников нужно создавать соответствующие условия.  И не одному конкретному сотруднику, а всем, ...</description>
		<link>http://alexlebedev.com/blog/why-contractors-are-easier-to-find/</link>
			</item>
	<item>
		<title>200 cлов о стиле</title>
		<description>Небольшой пример рефакторинга ruby-кода.

Исходный вариант (взято из статьи [Raking /etc/hosts For Sweeter Subdomainage](http://railstips.org/2008/6/25/raking-etc-hosts-for-sweeter-subdomainage))

    hosts = []

    # add all the site temporary domains
    hosts  </description>
		<link>http://alexlebedev.com/blog/200-words-about-style/</link>
			</item>
	<item>
		<title>О будущем веб-разработки</title>
		<description>Время от времени стоит выныривать из текущей суеты и задумываться о будущем.

Сегодня появилась замечательная возможность для этого

Прочтите последнюю статью Джоэля Спольски, [Strategy Letter VI](http://www.joelonsoftware.com/items/2007/09/18.html).  Это лучше из всего, что я чидел за последние полгода о перспективах развития платформ разработки.
 </description>
		<link>http://alexlebedev.com/blog/future-of-web-development/</link>
			</item>
</channel>
</rss>
