All Possible Images

Source code: All Possible Images

Интерфейс программы allPossibleImages

Иногда самые простые программы оказываются самыми запоминающимися. Одной из таких была allPossibleImages — небольшая утилита для BeOS, написанная Дугласом Ирвингом Рипетто и создававшая на экране что-то вроде живого дыхания системы.

Её идея была до смешного проста: программа последовательно перебирала все возможные изображения 8×8 пиксельной матрицы, то есть 18 446 744 073 709 551 616 комбинаций, — и делала это с помощью кода Грея, при котором от одного состояния к следующему изменяется только один пиксель. На экране это выглядело как тихое, медитативное мерцание 64 крошечных светящихся точек. Не хаос, не случайность — а упорядоченное движение внутри бесконечного множества возможностей.

Окно со сведениями о программе

В этом и заключалась магия BeOS: простота, доведённая до совершенства. allPossibleImages не делала ничего «полезного», не потребляла ресурсов, не пыталась впечатлить эффектами. Она просто существовала, — маленькое, почти философское напоминание о том, что между нулём и единицей лежит вся Вселенная состояний.

В руководстве по операционной системе BeOS компании Be, Inc. была глава, посвящённая возможностям репликантов. В левом верхнем углу иллюстрации к этой главе расположены окно программы allPossibleImages и она же в виде репликанта на рабочем столе. Фото: Be, Inc., 1999 год.

Многие пользователи BeOS, в том числе и я, держали окно этой программы в углу рабочего стола — как медитативное цифровое дыхание системы.

Но времена идут, и программы для BeOS устаревают. 64-битная Haiku не может запускать программы 32-битной BeOS (32-битная может, но в наши дни использовать 32-битную операционную систему — это моветон). Таким образом, абсолютное большинство пользователей Haiku больше не имеет возможности насладиться тихой, спокойной красотой allPossibleImages.

Но эти дни уже в прошлом!

Несколько дней назад мне не спалось, и я написал реинкарнацию allPossibleImages для Haiku, восстановив справедливость:

Моя версия All Possible Images

Я добавил всё, что помнил из оригинальной программы: код Грэя; 100-миллисекундный цикл увеличения отображаемого числа; Least significant bit в точке с координатами (5, 4) и затем развёртку по часовой стрелке, с 64-м знакоместом, соответствующим точке (1, 1). Я добавлю настройки, позволяющие менять цвета активных и неактивных точек по желанию пользователя, настройку размера точки и, может быть, дам возможность менять размер окна, чтобы было можно отображать не только матрицу 8×8, но и другие размеры. Репликации на десктоп тоже пока ещё нет, но это я сделаю в самом ближайшем будущем.

А вот как моя программа выглядит в работе

Так что теперь легендарная allPossibleImages снова сможет вернуться на десктопы пользователей Haiku!

Я связался с автором allPossibleImages, рассказал ему о своём проекте и получил его благословление. Он даже передал мне код allPossibleImages и дал разрешение использовать его по моему усмотрению:

Ответ Дугласа Рипетто

Source code: All Possible Images