пятница, 2 июля 2010 г.

Человеческое лицо Subversion

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

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

Тащить стабильные ветки - совершенно неинформативно, Весь чейнджлог содержит только собщения о мердже. Следовательно надо тащить к себе транк, который в репозитории FreeBSD традиционно по cvs'овски называется HEAD.

Проблема в том что история FreeBSD - богатая, 200 тысяч ревизий. И как выяснилось, не всякая DVCS долетит до середины репозитория FreeBSD. Решил немного сравнить mercurial и git в этом плане.

пятница, 25 июня 2010 г.

Операторные скобки, египетские и не очень

У нас в проекте не существует Coding Style. Это конечно плохо, но тут вопрос программистского самосознания о том, что считать правильным, а что никогда не применять, потому что плохо.

Вот один из свежих конфликтов связан с операторными скобками для функций.

В коде я предпочитаю использовать египетские скобки, потому что они экономят размер кода по вертикали. Это ведь не справедливо, что стандартный экран имеет 80 символов в ширину и только 25 строк по высоте. :) 80 символов мне хватает почти всегда.

среда, 23 июня 2010 г.

Фитнесс для питона

Однажды мы создалии для своего проекта на работе систему автоматизированного тестирования, которая могла бы в тестовых целях заменить нам программу управления. Система получилась тяжелая и плохо переносимая. Она была написана на перле, но в качестве транспортного уровня использовала код из продукта, который нормально собирается, по моему, только на 32-х битной FreeBSD. Транспортная библиотека из продукта с помощью swig была адаптирована для использования с perl. Кроме того на уровне perl по каждой функции существовала обертка...

Чтобы добавить функцию в эту систему необходимо было расширить транспортный уровень, доработать swig интерфейс, доточить perl враппер, отладиить все это (что порою превращалось в весьма нетривиальную операцию)..

Я уже знал в то время про FitNesse, и мне думалось, что неплохо было бы через wiki интерфейс управлять системой. Но связать все это вместе было достаточно нетривиально. Сам я на FreeBSD не сижу, а тестовое приложение не сидит на моей системе... А на той фре, на которой сидит тестовое приложение нет в помине никакой java, так нужной фитнессу.

Это все была присказка, переходим к сказке...

пятница, 28 мая 2010 г.

Boost data-driven test

Возникла необходимость проверить работу алгоритма на нескольких исходных данных. Поступил сигнал, что сервер не читает базы данных предыдущих версий. Сервер у нас пока сильно разобран, так что он может. Надо бы это дело потестировать юниттестами. Собрали базы данных разных версий, файлы Berkley DB по сути своей они.

Да, я знаю что тестировать файлы а уж тем более базы данных - некошерно, но лучше иметь такие тесты, чем не иметь никаких.

Итак поехали...

понедельник, 17 мая 2010 г.

Раскладка для телефона

Прочитал статью "Улучшенная раскладка для телефона", задумался...

Основная проблема не T9 режима - это подряд идущие символы, которые приходятся на одну клавишу. Необходимо выжидать, чтобы текущий символ зафиксировался, чтобы можно было начать набирать новый.

И тут меня осенило...