Журнальная версия этой статьи опубликован в "Компьютерре" #22(300). Здесь приводится полный оригинальный текст.