May 5th, 2009

with Cat The Cat

Классический веблог. Большей частью слешдот.

http://www.dau.mil/pubs/IDA/chart%20front.pdf - великолепная схема работы с Министерством Обороны США. Весьма рекомендую.

Предельная теорема систем контроля версий, сводит воедино централизованные и распределённые системы.

The most profitable IBM business ever, перфокарты. У них долгая история, и они, оказывается, привязаны, как стандарт, к стандарту доллара. Там же, неподалёку, есть обсуждение, как рынок не снижает цену даже в случае нулевой стоимости продукта. Прямой пример опровержения саморегуляции рынка.

Оказывается, SUN Niagara был куплен Sun Microsystems у стартапа, который был организован уволившимися из Sun инженерами. Плюс интересное про разработки Sun вообще.

Apple взял на работу главного по XBox в Европе.

Что-то у меня последнее время веблоги получаются. Ну, и ладно.
with Cat The Cat

Размышление. Программистское.

В некоей программе на Хаскеле получается не меньше двух монад: GTK и БД (БД собственная). А может получится и больше (пять-шесть штук). Практически все они как-то связаны с IO, имеют состояния различного рода и могут бросать исключения.

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

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

То есть, я формирую запрос вида HeroMonad FeatResult и отправляю по heroChannel, вместе с каналом, куда класть ответ (заведенным только что специально для этого случая). heroThread слушает heroChannel, читает действие и выполняет его. По выполнению она мне выдаст результат в только что переданный канал.

Получается дизайн комбинатора, которому только и надо, что интерфейс MonadIO.

Таким же образом я могу сделать SidekickMonad и VillainMonad, вместе с соответствующими каналами. Получится комикс. ;)

Главное, что обнаружил ещё одно измерение, в котором можно развивать дизайн программ на Хаскеле.

PS
Освоил Monad Transformers. Отличная штука.
PPS
На мысль об использовании каналов натолкнула небольшая дискуссия в ru_lambda.