01 октября, 2005
Полная автоматизация
Теперь наконец публикация MP3 каталога полностью автоматизирована. Даже итоги теперь автоматически генерируются прямо в XHTML:
- 84+ gigabytes (GB) of music.
- Total play time: 29+ days round the clock.
- 160+ artists, 600+ albums, 8400+ songs, average bitrate: 260 Kbps.
Вся логика преобразования компактно и красиво заложена в трех XSL-файлах: compile.xsl, translate.xsl и split.xsl, общим объемом всего 13 КБ. В файлах есть несколько JavaScript-включений, там где XSL не справляется, в первую очередь для подсчета итогов на деревьях.
Связка XSL со встроенным JavaScript'ом - ядерная комбинация. Ей под силу все - любые самые сложные и комплексные задачи по преобразованию и анализу структуированных данных. И вся ее мощь и красота - в ее декларативности. Декларативность - второй полюс из двух возможных в теории программирования.
К сожалению, красота временно нарушена файлом slice.cpp размером 821 байт. В нем возникла необходимость, потому что на финальной стадии обработки нужно из единого целого файла данных нарезать готовые страницы. Первая версия XSL не поддерживает множественной генерации. А вторая поддерживает!
Вторую версию сейчас поддерживает только Saxon, но он написан на Java и требует JRE. А мне хочется мобильности и минимальности. Microsoft'овцы написали хороший процессор XSL 1, но я где-то читал что они отказываются его дорабатывать до второй версии. Якобы нашли там какую-то паралельную технологию, которая якобы мощнее и более общая. Что за бред? Microsoft'овцы, даю вам два года на написание нормального XSL2-процессора. Не тупите.