среда, 30 ноября 2011 г.

О выборах

"Мы в своем обращении отмечаем, что считаем недопустимым, что в издаваемой этой ассоциацией газете даются прямые оценки ходу предвыборной кампании в нашей стране", - заявил Назаров агентству, отметив, что речь идет об издаваемой НПО газете "Гражданский голос". Депутаты утверждают, что своими действиями ассоциация "Голос" грубо нарушает российское избирательное законодательство, а также законодательство о СМИ.

И это запрос депутатов госдумы! Просто какой-то феерический п**ц. То есть у нас теперь и свои оценки публично нельзя высказывать. Похоже скоро будем жечь книги на кострах...

Изучение слов онлайн

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

суббота, 5 ноября 2011 г.

Проект как дифур второго порядка

Написание проекта можно рассматривать как переходный процесс из состояния 0 (ничего нет) в состояние 1 (проект готов). Из курса ТАУ я ещё помнил дифуры второго порядка для затухающих колебаний, но увидеть такой график, разглядывая динамику количества строк в проекте, не ожидал. Шутки ради по той же схеме проанализировал коммиты всех подчинённых — картина та же, хоть и менее явная. Потом поднял статистику фиксации багов и нашёл аналог длины свободного пробега молекулы в газе.

В общем, так.

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

2. Коэффициент затухания («вязкость», сопротивление изменениям) у всего софтверного проекта больше, чем у любой его подсистемы или у отдельного программиста. Период колебаний у программера практически всегда равен двум суткам: залил — все потестили — залил фикс. Как минимум 20% строк первоначального коммита будут поправлены — тоже интересная константа.

3. Совместно работающие программисты подчиняются правилу сложения источников белого шума: суммарная эффективность равна корню из их числа.

4. Время фикса бага пренебрежимо мало по сравнению со временем его жизни. Чтобы нарваться на баг, надо тестить. Никакие другие методы, увы, не помогут. Время жизни бага растёт экспоненциально в зависимости от количества пофикшенных.

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