?

Log in

homo_virtualis
View:Recent Entries.
View:Archive.
View:Friends.
View:Profile.
You're looking at the latest 10 entries.
Missed some entries? Then simply jump back 10 entries

Tags:
Security:
Subject:svn branching
Time:12:43 pm

Лучше поздно, чем никогда.

Постом на который ссылался аудиослейв некоторое время назад навеяло. Расскажу про наш способ работы с 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: 4 comments or Leave a comment Share

Tags:, , ,
Security:
Subject:самый большой кластер
Time:02:21 pm
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 Share

Tags:,
Security:
Time:12:56 am
А я правильно понимаю, что если мы возьмем шарообразный сервис и посмотрим как давно на него заходил каждый пользователь, то график распределения этих чисел будет экспонентоциальным распределением?
comments: 2 comments or Leave a comment Share

Tags:, , , , ,
Security:
Subject:Exception #08: Поиск "утечек" памяти в python-программе
Time:12:42 am

Я собрался с силами и сгенерировал текстовую версию доклада, который я делал на Exception #08. Про то, как я его писал можно будет написать отдельный пост =)

Exception #08: Поиск 'утечек' памяти в python-программеCollapse )
comments: 2 comments or Leave a comment Share

Security:
Time:01:48 pm
такой вопрос: стоит ли делать текстовую версию доклада, который я рассказывал на Exception #08, про поиск лишних объектов и использование инструментария gc/pdb/pickle?

точнее, я понимаю, что стоит, но как много людей это хотят? если наберется больше 10 - сделаю =)
comments: 11 comments or Leave a comment Share

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 Share

Tags:
Security:
Time:08:07 pm
Использовал django-evolution для изменения схемы БД Яндекс.Нано. Полет нормальный, проверка боем пройдена.
comments: 4 comments or Leave a comment Share

Security:
Subject:raw: количество информации
Time:12:41 pm
цель этого поста в том, чтобы освободить голову от мысли, а не в том чтобы претендовать на истинность

чтение философов от кибернетики заставляет думать самого. эта мысль об альтернативном способе измерения информации. в противовес вероятностным методам теории информации назовем его теоретической теорией информации.

основные мысли:
- наверное количество информации в системе - это количество информации, необходимое для описания аксиоматики системы.
- а количество информации в сообщении - это количество необходимых дополнений (а может быть и изменений/удалений?) в аксиоматику модели для того чтобы сообщение стало истинным для модели.

(sidenote: в случае возможности удалений возможны сообщения с отрицательной информацией относительно системы!)

то есть информация в сообщении - это не абсолютная величина. для измерения информации сообщения нужна система к которой сообщение относится.

так же, возможно, имеет смысл введения понятия "работы" по вычислению конкретного утверждения из заданной аксиоматики. так, например: "4 + x = 7 при x = 3" -- работы мало, "z^n = a^n + b^n не имеет решений при n > 2" - работы очень много. при том что ни то ни другое утверждение не содержит информации.
comments: 7 comments or Leave a comment Share

Security:
Time:01:33 pm
Идея в пустоту: уже существуют внешние жесткие диски с ethernet интерфейсом, почему бы в них кроме возможности шарить файлы по ftp/smb не встроить умение скачивать файлы через bittorrent из интернета? по-моему, это было бы органичным дополнением.
comments: 11 comments or Leave a comment Share

Security:
Subject:Облака тегов
Time:03:45 pm
Для чего нужны облака тегов? С одной стороны я никак не могу придумать внятного обоснования для их существования, я ни разу не смог воспользоваться ими как навигацией (по-моему это их заявляемое предназначение). С другой стороны мне самому хочется добавить их к каждому проекту, который я делаю, подсознательно, без объективной причины.
comments: 7 comments or Leave a comment Share

homo_virtualis
View:Recent Entries.
View:Archive.
View:Friends.
View:Profile.
You're looking at the latest 10 entries.
Missed some entries? Then simply jump back 10 entries