April 18th, 2012

with Cat The Cat

Хехе.

http://juick.com/zamotivator/1848967

Берём много значений сразу и делаем следующее: для первого используем исходное отображение, для второго - исходное + изменения от первого, для третьего - исходное + изменения первых двух и тп. Сделаем много отображений и потом параллельно посчитаем результаты. Или сразу будем формировать отображения и считать результаты.

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

Также понятно, что отображение должно быть неизменным, а добавление значения в статистику должно порождать новое отображение - чтобы нити друг у друга под ногами не путались.

А если добавление статистики коммутативно - к исходному значению добавить a, затем b равно добавлению сперва b, потом a, - то вообще можно применить алгоритм Кэннона или что похожее.
with Cat The Cat

Надо ещё про Assembla рассказать.

http://www.assembla.com/

Это такой GitHub, только немного другой. Они были выбраны ParSci из-за интеграции с Gerrit, но потом они сделали штуку даже лучше. Они сделали запросы слияния (merge requests) с предварительным просмотром.

Для пространства (проекта с командой) заводится несколько клонов основного хранилища, как минимум, для каждого члена команды. Подготовив в своём клоне код можно отправить запрос слияния в любое другое хранилище - коллеги ли, основное ли. Сливать можно ветки и тэги. Коллега или ещё кто могут голосовать за и против, вести дискуссию, принимать и игнорировать такие запросы. После принятия изменения запроса сливаются с изменениями хранилища, в который запрос был отправлен.

Я до этого не работал с git и GitHub, поэтому сравнивать мне особо не с чем. Но поскольку мне понравилось работать с таким подходом, я решил поделиться. Может, кому полезно будет. На мой взгляд, практически идеальное соотношение самостоятельности,и надёжности.