вторник, 29 июня 2010 г.

Знакомство с UP и RUP


Недавно закончил читать Введение в Rational Unified Process Филиппа Кратчена. Я давно интересуюсь agile подходами к разработке, но все никак не доходили руки что бы вплотную заняться ознакомлением.

До этого прочитал книгу Лармана: Применение UML 2.0 и шаблонов проектирования и она произвела на меня действительно большое впечатление: все просто и четко рассказано, отличные примеры и общая живая речь автора. В ней подробно описывается Unified Process и дано много полезных практических советов по его применению на практике. В общем конечно, было бы здорово применить его у себя в отделе, подумалось мне. Некоторые элементы UP у нас используются - например поэтапная передача продуктов на тестирование, новые витки анализа и проектирования при добавлениях новых методов, но конечно до реального UP тут еще как до луны. Но после некоторых размышлений над вопросом внедрения всплыли проблемы (впрочем, это не удивительно):

1. нет ни одного человека, насколько мне известно, в отделе кто бы хорошо был знаком с UP или RUP, а без этого пытаться что-то сделать в реальных коммерческих проектах очень рискованно - можно вообще все провалить. Приглашение эксперта со стороны видится в наших условиях несколько утопично.

2. как мне видится не все наши отделы готовы работать с таким новым подходом, а инициативы одного отдела разработки явно недостаточно.

3. нет серьезной инструментальной поддержки - хотя бы тех же проекторов - по 2 штуки, или необходимого софта.

И вот для того что бы дальше развить тему решил я почитать про RUP: и книга Кратчена меня серьезно разочаровала. Конечно, она предоставляется ровно то, что обещает: введение в RUP, но до чего же это мало. Фактически все я книга представляет из себя набор определений и общее описание технологических процессов. Никакой конкретики, про софт только упоминания вскольз я уж и не говорю, что понять чем отличается RUP от UP по этой книге невозможно. В общем, определенно, книга Лармана победила в этом мини турнире по всем статьям.

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

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

Сила ядер

Некоторое время назад у меня на работе произошел апгрейд рабочего компьютера. Вместо древнего pentium 4 появился Intel Core i7 920 c 6 Gb быстрой памяти на борту. Установив x64 debian я радостно стал проверять насколько быстро собираются библиотеки и мои программы. Первоначальный результат несколько обескуражил: древний boost 1.34.1 собирался более 10 минут! Моему разочарованию не было предела - ну как так - новейшее железо и все еще не может справиться с этим С++ (пусть и с шаблонами)! И тут я вспомнил, что у меня же теперь есть 4 полновесных ядра, которые надо использовать на полную катушку. HT меня в своем время капитально разочаровал, и теперь мне понятно почему. От моих новеньких ядер я вправе был ждать много большего и воистину не разочаровался:


boost 1.34.1: bjam

real 10m51.390s
user 10m8.870s
sys 0m40.031s

boost 1.34.1: bjam -j2

real 5m31.464s
user 10m12.082s
sys 0m40.831s


boost 1.34.1: bjam -j4

real 2m56.273s
user 10m33.492s
sys 0m43.655s


boost 1.34.1: bjam -j8

real 2m27.608s
user 16m33.466s
sys 1m3.984s




Ускорение почти в 5 раз по сравнению с оригинальным результатом! Воистину, закон Мура еще как-то действует! Вот еще некоторые результаты замеров:

gigabase: make

real 0m36.746s
user 0m33.082s
sys 0m3.884s

gigabase: make -j2

real 0m18.256s
user 0m32.758s
sys 0m3.848s


gigabase: make -j4

real 0m9.786s
user 0m34.278s
sys 0m4.036s

gigabase: make -j8

real 0m10.007s
user 0m48.167s
sys 0m4.488s




boost 1.41.0: bjam -j4

real 1m57.435s
user 7m3.522s
sys 0m24.334s

boost 1.41.0: bjam -j8

real 1m39.749s
user 11m4.794s
sys 0m35.562s



В итоге теперь все программы собираю исключительно с -j8 (и от HT оказался какой-то толк) заодно подправив свои настройки в emacs:

(defun my-compile-file ()
"Save all files and compile"
(interactive)
(save-some-buffers 1)
(let (temp)
(compile "make -k -j8")
)
)
(global-set-key [f7] 'my-compile-file)

вторник, 22 июня 2010 г.

Микеланджело

Недавно прочитал книгу "Муки и радости" Ирвинга Стоуна. Книга действительно огромна, как по объему так и по проведенной автором работы. Читая в отпуске эту книгу, я действительно погрузился в эти стародавние времена, когда рождалось новое искусство. Что меня действительно поразило - жизнь этого великого Художника. Его преданность работе, семье, городу и искусству. По счастливой случайности именно в это время я был в Риме и Флоренции, любуясь тамошними шедеврами. Перед одним только "Давидом" я простоял минут 20 - не меньше - абсолютно потрясающая вещь.

Пусть его гениальность кажется не знала границ, но именно каждодневный труд, помог ему стать тем кем он стал. Это действительно меня сильно вдохновило, когда я вернулся из отпуска: моя работа в основном нравится - программирование, чего-то нового - это действительно потрясающе. Но часто бывают рутинные моменты, через которые надо пройти. Вспоминая, жизнь Микеланджело и его каждодневный труд, сейчас это все преодолевать очень легко (правда, не ясно сколько это продлиться). Никогда не думал, что художественные книги могут так влиять на человека.

Сейчас решил почитать еще и письма и стихи Микеланджело с комментариями - после прочтения романа это действительно интересно.