понедельник, июля 31, 2006

Статья "How to drive developers crazy with issue tracking"

How to drive developers crazy with issue tracking - сборник вредных советов по пользованию багтракинговой системой. Несмотря на то, что статья явно юмористическая, она получилась очень жизненной. Смех сквозь слезы получается.

пятница, июля 28, 2006

Синхронизация времени в Windows XP

Настраивала тут синхронизацию времени на своей машине... В Windows XP есть штатное средство синхронизации времени: Control Panel -> Date, Time, Language, and Regional Options -> Date and Time -> Internet Time. Но синхронизуется оно раз в неделю и интерфейса для настройки интервала времени нет. Если нет интерфейса, это вовсе не значит, что интервал нельзя настроить. Нужно подредактировать ключ в реестре: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services \W32Time\TimeProviders\NtpClien, ключик SpecialPollInterval. Там указано время в секундах, по умолчанию 604800 - одна неделя. Если нужен один час, ставим 3600.

Если стандартная синхронизация времени чем-то таки не нравится, можно поставить какую-нибудь другую программку для этого. Я себе поставила Dimension 4. Но прежде чем включать другую синхронизялку, надо прибить Windows Time в Сервисах, а то оно конфликтует.

Updated 26.10.2009
Анонимный комментирует...
Главное добавь, что нужно перезапустить службу (Служба времени Windows).

четверг, июля 20, 2006

Интервью с Эрихом Гаммой

Несколько интервью с Эрихом Гаммой, это один из авторов книги "Паттерны Проектирования". Интервью довольно старые, прошлогодние.
Part I: How to Use Design Patterns
Part II: Erich Gamma on Flexibility and Reuse
Part III. Design Principles from Design Patterns
Part IV. Patterns and Practice

среда, июля 19, 2006

Восстановление данных с жесткого диска путем заморозки

Оригинальный способ восстановления данных с жесткого диска: Freeze your hard drive to recover data: Myth or reality? Надо положить убитый жесткий диск в холодильник, лучше на сутки. Потом он может проработать минут 20, а может и полчаса. Скорее всего это хватит, чтобы скопировать с него особенно важные данные. Автор поста провел эксперимент с нерабочим жестким диском, диск ожил. Рассказ сопровождается красочными иллюстрациями.

Несмотря на то, что способ звучит анекдотично, почему бы и не попробовать? Хуже уже все равно не будет. В комментариях к вышеупомянутому посту народ рассказывает чудесные способы спасения данных этим способом.

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

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

понедельник, июля 10, 2006

Оценка производительности контейнеров

Standard Container Benchmark - программка, сравнивающая прозиводительность различных контейнеров. Задача, которая выбрана для оценки производительности: удаление дубликатов из последовательности чисел типа double. Примечательно в этой программке то, что ее написали Степанов со Страуструпом специально для программистов. Чтобы было удобнее выбирать контейнер для своей задачи, чтобы можно было сравнить различные реализации контейнеров, поэкспериментировать с настройками оптимизации в компиляторе. В результате получается что-то вроде такого:


size array vector with pointers vector with iterators deque list set multiset
10 1.91 2.48 4.66 8.20 22.50 6.95 11.05
100 1.39 1.34 3.09 4.67 8.52 5.03 7.22
1000 1.25 1.25 2.97 3.98 7.52 4.56 7.05
10000 1.41 1.31 2.75 3.77 8.28 4.81 7.61
100000 1.17 1.19 2.52 3.25 11.08 7.53 14.48
1000000 1.48 1.56 3.23 4.27 12.34 9.86 11.08


Ссылки по теме:
comp.lang.c++.moderated Container Performance. Пост Страуструпа с этой программой, который вылился в обсуждение производительности контейнеров на разных платформах.
openwatcom.contributors OWSTL benchmark experiment. Сравнительно недавнее обсуждение прозводительности контейнеров в OWSTL.

воскресенье, июля 02, 2006

Подсчет количества установленных битов в беззнаковом целом

Это одна из известных задачек, которую задают на собеседованиях: дано беззнаковое целое число, надо подсчитать количество бит, установленных в единицу. Как это сделать как можно быстрее?
Самый простой вариант - тупо пройтись по числу и проверить каждый бит. О скорости тут речь не идет. Несколько быстрее будет проверять последний бит, затем использовать операцию сдвига и после каждого сдвига проверять исходное число на 0.
Дела пойдут гораздо быстрее, если предподсчитать количество единиц. Это можно сделать для 8-битовых и 16-битовых целых, дальше уже сложнее...
На страничке Counting Number of On Bits in an Integer есть эти и другие, более мудрёные варианты решения этой задачи, все с примерами кода и с сравнением по скорости. Предподсчет быстрее всех.