| Лучше поздно, чем никогда.
Постом на который ссылался аудиослейв некоторое время назад навеяло. Расскажу про наш способ работы с svn-бранчами.
Идея заключается в том, что запоминать с какой же именно ревизии ты отпочковался - накладно. Пусть об этом помнит машина. Для этого мы используем свойство svn о том что сливание веток это всего лишь получение диффа двух поддеревьев и применение его к третьему. Значит вместо записывания ревизии почкования мы можем создать два бранча "рабочий" и "эталонный". А потом найти разницу между ними как итог работы в бранче.
"Рабочий" бранч будет называться как обычно branches/$branch, а "эталонный" branches/$branch--base. В качестве названия бранча я, как правило, использую номер задачи из багтрекера, например FOOBAR-28.
создание бранча
# "базовый" бранч
svn cp $prj/{trunk,branches/$branch--base}`
# "рабочий" бранч
svn cp $prj/branches/$branch{--base,}
# чекаут нового рабочего бранча, начинаем работу
svn co $prj/branches/$branch
cd $branch
вливание бранча в транк
Следствием того, что каждая задача багтрекера - бранч, их жизнь скоротечна и вливание в транк гораздо более частая задача, чем обновление бранча из него. Эта операция проходит, как и предполагалось.
# локальная копия транка для сливания
svn co $prj/trunk $branch--merge
cd $branch--merge
svn merge $prj/branches/$branch{--base,}
# проверяем, что все работает и коммитим
svn ci
обновление бранча из транка
Эта операция чуть более сложная, но все же доступная для понимания =)
# так как мы сольемся с транком "эталонный" бранч должен стать идентичным
# текущему транку
svn cp $prj/{trunk,$branch--new-base}
# сливаем все изменения от старого "эталонного" до нового
cd $branch
svn merge $prj/branches/$branch--{base,new-base}
# подменяем "эталонный" бранч
svn rm $prj/branches/$branch--base
svn mv $prj/branches/$branch--{new-base,base}
| comments: 5 comments or Leave a comment  |
| Flash - замечательная технология, умеет получать информацию из интернета, отправлять ее обратно, и с развитием VM в Flash, и позиционированием ее как платформы для сложных вычислений (появился компилятор C/C++ → Flash Adobe Alchemy: "... Ideally suited for computation-intensive use cases, such as audio/video transcoding, data manipulation, XML parsing, cryptographic functions or physics simulation ...") появляется возможность организовать вычислительный кластер невероятных размеров. Все же и так знают, что от флеша ноутбук начинает греться.
То есть для того чтобы увеличить размер кластера нужно, чтобы как можно больше человек открыло браузером страничку с правильным флешом и не закрывало. Сначала я думал, не сделать ли казуалку, зума бы подошла, я думаю. А потом вспомнил про YouTube. Этим ребятам точно ничего не стоит построить суперкомпьютер (100M показов видео в сутки при средней длительности 1 минута это почти 200 машино-лет(!)) за 0 долларов, 0 центов. =) Так что, когда в следующий раз пойдете смотреть ютуб и у вас включится вентилятор ноутбука, вполне может быть, что он считает вовсе не то, что кажется =) | comments: 2 comments or Leave a comment  |
| такой вопрос: стоит ли делать текстовую версию доклада, который я рассказывал на Exception #08, про поиск лишних объектов и использование инструментария gc/pdb/pickle?
точнее, я понимаю, что стоит, но как много людей это хотят? если наберется больше 10 - сделаю =) | comments: 11 comments or Leave a comment  |
| | Security: | | | Subject: | a12n | | Time: | 08:55 pm |
|
| На днях открыл для себя чудесный мир AppleScript. Устал каждый раз приходя на работу открывать логи разрабатываемого сервиса на двух бекендах. Сделал такой скрипт:
tell application "Terminal"
set blaze_tab to do script "ssh blaze 'tail -f /var/log/yandex/...log' | bin/colorer"
set custom title of blaze_tab to "blaze"
set number of rows of blaze_tab to 80
set number of columns of blaze_tab to 128
set vitalize_tab to do script "ssh vitalize 'tail -f /var/log/yandex/...log' | bin/colorer"
set custom title of vitalize_tab to "vitalize"
set number of rows of vitalize_tab to 80
set number of columns of vitalize_tab to 128
end tell
С циклом заморачиваться не стал, сильно не понравилось как код выглядит.
А bin/colorer - микро-утилитка, которая расцвечивает строки если в них встречаются слова INFO, WARN, ERROR в жирно-черный, желтый и красный соответственно =)
Да, а Automator'у мое фу за то что не дает ускорять набор текста в записанных действиях. | comments: 1 comment or Leave a comment  |
| цель этого поста в том, чтобы освободить голову от мысли, а не в том чтобы претендовать на истинность
чтение философов от кибернетики заставляет думать самого. эта мысль об альтернативном способе измерения информации. в противовес вероятностным методам теории информации назовем его теоретической теорией информации.
основные мысли: - наверное количество информации в системе - это количество информации, необходимое для описания аксиоматики системы. - а количество информации в сообщении - это количество необходимых дополнений (а может быть и изменений/удалений?) в аксиоматику модели для того чтобы сообщение стало истинным для модели.
(sidenote: в случае возможности удалений возможны сообщения с отрицательной информацией относительно системы!)
то есть информация в сообщении - это не абсолютная величина. для измерения информации сообщения нужна система к которой сообщение относится.
так же, возможно, имеет смысл введения понятия "работы" по вычислению конкретного утверждения из заданной аксиоматики. так, например: "4 + x = 7 при x = 3" -- работы мало, "z^n = a^n + b^n не имеет решений при n > 2" - работы очень много. при том что ни то ни другое утверждение не содержит информации. | comments: 7 comments or Leave a comment  |
| | Идея в пустоту: уже существуют внешние жесткие диски с ethernet интерфейсом, почему бы в них кроме возможности шарить файлы по ftp/smb не встроить умение скачивать файлы через bittorrent из интернета? по-моему, это было бы органичным дополнением. | comments: 11 comments or Leave a comment  |
| | Для чего нужны облака тегов? С одной стороны я никак не могу придумать внятного обоснования для их существования, я ни разу не смог воспользоваться ими как навигацией (по-моему это их заявляемое предназначение). С другой стороны мне самому хочется добавить их к каждому проекту, который я делаю, подсознательно, без объективной причины. | comments: 7 comments or Leave a comment  |
| |