Эти простые механизмы решали задачи информационного поиска по многим критериям и различным весовым коэффициентам, и классификации информации, представленной в виде перфорированных карт. Работу «интеллектуальных машин» можно представить в терминах операций со множествами, таких как объединение, пересечение, разность и дополнение. В основе идей Корсакова лежит мысль об «усилении разума», автоматизации работы со знаниями в различных областях, что являлось предвосхищением понятия экспертной системы.
Корсаков отказался от патента на свои изобретения и закончил брошюру следующими словами:
Открытия Корсакова не были оценены должным образом современниками. Выводы комиссии Императорской Академии наук под руководством М.В. Остроградского содержали следующие слова: «Г-н Корсаков потратил слишком много разума на то, чтобы научить других обходиться без разума».
Синтезатор 4klang (Alcatraz) предназначен для встраивания в 4k intro. Синтезатор модульный, реализован в виде стековой виртуальной машины (чуть-чуть не хватило авторам до Форт-машины). Модули передают друг другу значения сигналов через стек, имеются традиционные стековые операторы. VST-версия синтезатора формирует obj-файл в составе которого находятся данные композиции и набор реально используемых в ней модулей. Данный obj-файл предназначен для использования совместно с утилитой crinkler. Это очень интересная утилита, она представляет собой редактор связей (linker), совместимый с Microsoft VC++, и весьма эффективный компрессор. Я попробовал написать тестовую композицию на 4klang, в результате получился exe-файл на 1.5 килобайта. К сожалению, есть проблема с VST-версией 4klang. Она чрезвычайно прожорлива по части cpu-ресурсов. В статье можно узнать подробности о синтезаторе.
На днях задумался над тем, когда в России впервые были исполнены «Страсти по Матфею» Баха. У Одоевского, в одной из статей, есть риторический вопрос, мол, почему бы не исполнить хоть несколько хоров из «недавно изданных» «Страстей». Это 1839-й год. Известно также (см. приложение в книге о Бахе А. Швейцера), что в 70-е Римский-Корсаков принимал участие в исполнении отрывков из «Страстей». Вспомнив об интересе Танеева к музыке Баха, я отыскал ответ на свой вопрос.
Подробнее здесь.
BBS Documentary и Get Lamp это фильмы Джейсона Скотта, историка компьютерной культуры. Первый фильм повествует об истории BBS и Fido, а второй посвящён текстовым играм. Оба фильма до сих пор не переведены и английские субтитры к ним недоступны, хотя оба фильма выпущены под лицензией Creative Commons. Подумываю заняться переводом Get lamp, когда будут доступны субтитры…
Недавно купил книгу В.Г. Хорошевского «Архитектура вычислительных систем». Это не совсем обычный учебник. Автор его — известный отечественный учёный, специалист в области параллельных вычислений, в числе его разработок, например, Минск-222 (первая в мире ВС с программируемой структурой, одномерная, 1965 г.). Совместно с Э.В. Евреиновым он развивал фундаментальное направление однородных вычислительных систем, структур и сред (ОВС). В книге доминирует «параллельный» взгляд на компьютерную архитектуру. Представлены основы теории ОВС (Хорошевский использует более общий термин: «система с программируемой структурой»). Изложен опыт построения многих значимых отечественных параллельных вычислительных систем. Рад, что появилось современное издание по данным вопросам.
Приятная новость, игру Another World портировали на JavaScript! Автор Gil Megidish пишет о недочётах в реализации, однако для меня важнее, что теперь виртуальная машина этой замечательной игры вся, как на ладони. Можно дизассемблировать уровни, извлекать графику и т.д. Появилась возможность ещё лучше изучить этот шедевр программистского искусства.
Купил на днях книгу: Варшавский В.И., Поспелов Д.А. Оркестр играет без дирижёра: Размышления об эволюции некоторых технических систем и управлении ими. Изд.2, доп. — Либроком, 2009 г. Это переиздание классики от известных советских учёных. В ней содержится ряд полезных мыслей не тему децентрализованных систем (современные примеры: децентрализованные p2p-сети, мультикомпьютер GA144).
К сожалению, на деле обработка осуществляется силами SID'а и за счёт специального (интересного!) представления сжатого аудио в виде последовательности формант.
Цикл об истории компьютера Amiga: 1, 2, 3, 4, 5, 6, 7, 8.
Статья по истории GUI.
Несколько слов о литературных работах, связанных с Чарльзом Беббиджем. Очень хотелось бы увидеть на русском языке автобиографию Passages from the life of a philosopher. Кроме того, статью "Sketch of the Analytical Engine" Менабреа и Лавлейс просто необходимо перевести!
Один мой приятель сделал перевод повести Пола Гэллико «Снежный гусь» по моей просьбе. Насколько я знаю, перевод этот до сих пор нигде не выложен. В своё время я переписывался на этот счёт c автором lib.ru, но в какой-то момент мой корреспондент перестал отвечать на письма. Повесть эта должна быть, в частности, интересна любителям группы «Camel». Временно выкладываю текст сюда.
Вот ещё одна книга — «Эрик С. Рэймонд. Новый словарь хакера. — ЦентрКом, 1996». Книга о программистской культуре, неожиданно познавательная. Из неё я узнал об играх Advent, MUD, Zork и Moria, книгах Дугласа Адамса и Хофштадера, о конкурсе Obfuscated C Contest и языке Intercal, Dragon book и многом, многом другом. До сих пор приятно открывать её на любой странице и погружаться в чтение.
Продолжаю тему о программистах-музыкантах. Андрей Родионов известен своими работами в сфере электронной музыки. В 80-е была популярна пластинка «Пульс 1», написанная им в соавторстве с Б. Тихомировым. Как программист, Родионов известен работами для компьютера Yamaha MSX и, в наибольшей степени, благодаря написанной им статье Своя игра. Это очень интересное околофилософское размышление об искусстве создания компьютерных игр и, пожалуй, лучшее, из того что я читал на подобные темы.
Себе на заметку. Было бы нелишне в связи «4k procedural graphics» (см. вчерашнюю заметку) упомянуть сложность по Колмогорову.
«X Macro» это интересная техника использования макро, которая работает для препроцессора Си (и не только). Она удобна, когда необходимо некоторые данные одного характера содержать и изменять совместно, для чего используется динамическое переопределение макроидентификаторов. Подробности см. здесь.
Книгу «Орам Энди, Уилсон Грег. Идеальный код. — Питер, 2009» можно с полным основанием назвать неудачной, поскольку своего названия она не оправдывает. Её содержимое скорее напоминает годичный архив раздела «Советы профессионала» из гипотетического журнала по программированию. Но есть там статья, за которую я готов простить составителям книги всё. Это «Нисходящая иерархия операторов» Дугласа Крокфорда. Замечательное лаконичное изложение, элегантнейший алгоритм и по-настоящему красивая реализация. С оригиналом статьи можно познакомиться на сайте автора. Алгоритм Пратта, реализация которого даётся в статье, это потрясающая по своей простоте вещь. Кстати говоря, на уровне интерфейса пользователя я бы попробовал оперировать не числовыми приоритетами, а в терминах отношений (больше, меньше, равно) и связанных с ними уже определённых операторов. Раз уж я заговорил о синтаксических анализаторах, то упомяну здесь о системе META II и просто оставлю в качестве памятки для себя две ссылки, 1 и 2.
Раз уж речь зашла об играх, хочу вспомнить Another World. Замечательная вещь, увлекательная и красивая, напоминающая оживший нф-роман (от Фрэнсиса Корсака, например). Но внутреннее устройство Another World восхищает меня особенно. Я с трудом представляю, как французский программист Eric Chahi в 91-м году сумел создать такое совершенство. В игре используется интерпретатор скриптового языка со встроенной многозадачностью, а графика реализована на векторном 2d-движке с поддержкой сложной анимации. Подробнее можно прочесть на сайте у автора. Несомненно, что Another World появился благодаря игре Karateka, которую создал Jordan Mechner в 84-м году. Сходство в применении ротоскопии для создания реалистичной анимации, а также в общем для игр «кинематографическом» игровом процессе. Сделать такую замечательную игру в возрасте всего 20-и лет…Любопытно почитать старые дневники на сайте автора Karateka (он же автор Prince of Persia).
Шумовое загрязнение (ШЗ) – фактор, который влияет, помимо прочего, на восприятие и создание музыки. В условиях неуклонного роста показателей ШЗ, особенно в мегаполисах, ухо привыкает к диссонансу и слабо различает динамические оттенки. Кажется, что полная тишина это роскошь, доступная далеко не каждому…Когда становится совсем тяжело, я спасаюсь с помощью противошумных наушников.
Хотел бы порекомендовать две книги интересующимся ЦОС (цифровая обработка сигналов).
- Юкио Сато. Обработка сигналов. Первое знакомство. — Додэка-XXI, 2009.
- Ричард Лайонс. Цифровая обработка сигналов. — Бином-Пресс, 2006.
Например, не смотря на известное ограничение свободы действий и возможное снижение быстродействия программы, общепринята парадигма структурного программирования.
Как же обстоит дело в области параллельного программирования? Приведу цитату из работы “Математические проблемы параллельных вычислений” В.В. Воеводина:
“Построение графов для большого числа конкретных алгоритмов выявило удивительную закономерность: большое разнообразие существующих методов не приводит к такому же разнообразию их информационных структур. Точнее, многие графы формально совершенно различных алгоритмов оказались изоморфными, отличаясь друг от друга только содержанием вершин и дуг. Поэтому была выдвинута гипотеза о том, что в конкретных вычислительных областях типовых информационных структур немного”.
Данная мысль, разумеется, приходила в голову многим авторам. Самым известным на сегодня примером подобной “типовой информационной структуры” является, безусловно, MapReduce.
Но задолго до этой разработки от Google появилась общая концепция структурного параллельного программирования, в виде parallel skeletons.
Добавление библиотеки поддержки parallel skeletons не должно составить большого труда в современные популярные языки программирования. В результате можно ожидать снижения порога сложности вхождения в мир параллельных вычислений со стороны неспециалистов. Это как раз та “синица в руках”, которая лучше “журавля в небе” в виде систем автоматического распараллеливания.
С. С. Лавров. Программирование. Математические основы, средства, теория. — БХВ-Петербург, 2001.
Имя Лаврова мне было знакомо в связи его работами по языку ЛИСП в СССР. Тем интереснее было узнать о роли этого выдающегося учёного в развитии отечественного программирования по этой ссылке.
Данный учебник увидел свет за три года до кончины Святослава Сергеевича Лаврова.
Возвращаясь к моему первоначальному вопросу: CM-1 поражал воображение и своим внешним видом! Блок из восьми больших чёрных ящиков, намекающий на топологию гиперкуба, а на их гранях — таинственные узоры из красных огоньков, отражающих активность процессорных элементов. Компьютер “сыграл” даже в нескольких голливудских фильмах. Здесь можно узнать о том, как разрабатывался этот нетривиальный дизайн. Действительно, отличная иллюстрация к выражению “форма следует функции” (form follows function).
Лучше всего об архитектуре CM-1 пишет сам её автор вот тут. Также, на youtube есть любопытное видео.
По другому поводу пытался вспомнить сегодня хорошие русские учебники по программированию. В моей библиотеке таковых нашлось два:
- Г. В. Лебедев, А. Г. Кушниренко. Программирование для математиков: Учебное пособие для вузов по специальностям “Математика” и “Прикладная математика”. - Наука, 1988,
- А. Шень. Программирование: теоремы и задачи, МЦНМО, 1995.
Тем же вечером посетил концерт кафедры скрипки в Малом зале консерватории.