Архив за месяц: Декабрь 2014

Афиша юбилейного концерта

Владимир Александрович прислал афишу и кучу текста. Посмотрел я на афишу да и перерисовал её с нуля, чтоб читалось лучше и весь текст поместился:

Концерт вокально-хоровой музыки

Кому надо — забирайте: есть в PDF и PNG на 300 dpi. Формат — A4.

Юбилейный хоровой концерт

В январе Владимир Александрович Шереметьев, дирижёр и руководитель хоровых коллективов, отмечает свой день рождения и часто отмечает его концертом. Ближайший январь — юбилейный: Владимиру Александровичу исполняется семьдесят пять. И конечно, будет концерт:

В воскресенье, 11 января в 18 часов в зале камерной и органной музыки «Родина» (Челябинск, улица Кирова, 78) —
юбилейный авторский концерт вокально-хоровой музыки, посвящённый 75-летию Владимира Александровича Шереметьева.

В концерте принимают участие:

  • Мужской хор русского культурного центра города Челябинска,
  • Академический женский хор «Мечта»,
  • Солист Челябинского государственного театра оперы и балета Людмила Гроздева
  • Лауреат всероссийских и международных конкурсов Татьяна Петриченкова
  • Учащиеся класса академического сольного пения детской школы искусств № 1 города Челябинска

В программе:

  • Хоровые сочинения из циклов «Моабитская тетрадь» и «Светлый родник»
  • Романсы русских композиторов в переложениях для мужского хора
  • Хоровые обработки песен народов мира «Золотые россыпи»
  • Песни для солистов — детей и взрослых

Билеты — по 150 рублей — распространяются участниками концерта, и, скорее всего, в кассах их нет.

Губернатор считает, что Ильменку надо проводить в традиционное время на том же месте

Житель Миасса Михаил Пищулин, чья видеозапись ильменского урагана ходила по интернету и ТВ, побывал на очередной встрече блогеров с губернатором (в этот раз меня туда не звали — ну и ладно) и сообщает:

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

Собственные переводы интерфейса OJS

Open Journal Systems — многоязычная система: многие её части могут быть переведены на разные языки. Не все, конечно: например, в материалах статей некоторые поля по странной прихоти разработчиков (или просто по невнимательности) остались одноязычными и добавить в них возможность правильно хранить данные на нескольких языках — не самая простая задача: я, например, так её и не завершил. В версиях 2.4.* нормальной многоязычности статей не будет — возможно, такое положение и объясняет тот факт, что в России OJS не особо популярна — она без применения напильника непригодна даже для тех журналов, где надо всего лишь продублировать имя русского автора статьи латинскими буквами.

С переводом интерфейса дела обстоят чуть получше: переведено может быть почти всё. Но и тут не всё гладко: вместо gettext применяется другой механизм локализации, где ключами служат не фразы на естественном языке (например, английском), а строки вида where.what.someItem. Переводы хранятся в XML-файлах, раскиданных по дереву каталогов. Впрочем, бо́льшая их часть сосредоточена в locale/ и lib/pkp/locale.

Есть два пути внедрения своих собственных переводов: первый, очевидный — отредактировать системные XML-файлы с переводами, плох тем, что при первом же обновлении OJS собственные переводы могут пропасть или вызвать конфликт слияния, если обновление проводится через git. Другой, более правильный — использовать плагин Custom Locale: он позволяет заменить системные переводы своими, не трогая системные файлы. Для того, чтоб заменить какой-либо фрагмент, надо знать ключ, а также файл, где перевод определён. Процесс замены переводов получается таким: сначала ищем, где и как определён нужный текст, затем идём на http://some-ojs-site/journal_name/manager/plugin/generic/customlocaleplugin/edit/ru_RU (если меняем русский текст), ищем в увиденном списке нужный файл, затем пытаемся найти в нём нужный ключ. Поиск там, вроде, есть, но, во-первых, ищет только в пределах текущего файла и умеет искать только точное соответствие с ключом — ничего более. Понятно, что такой интерфейс не нужен: лучше обходиться без него. Плагин хранит изменённые переводы в виде XML-файлов, которые складывает в public/journals/journal_id/customLocale/locale/path, где journal_id — номер журнала, locale — язык в виде язык_СТРАНА, например en_US — американский английский, а path — путь к заменяемым XML-файлам относительно каталога, где установлена OJS.

Пример: некий файл public/journals/1/customLocale/ru_RU/lib/pkp/locale/ru_RU/common.xml заменяет строки из файла lib/pkp/locale/ru_RU/common.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE locale SYSTEM "../../../../../../../../../lib/pkp/dtd/locale.dtd">
<locale name="ru_RU">
	<message key="navigation.about">О журнале</message>
	<message key="navigation.setup">Настройка журнала</message>
	<message key="common.notApplicableShort"> </message>
</locale>

Собрать такой файл копированием и вставкой с сопутствующим редактированием можно гораздо быстрее, чем ковыряться через веб-интерфейс.

Инициализация переменных

Объявлял как-то переменные и присваивал им пустую строку:

my (
    $search_for_name, $search_for_content,
    $action_clean, $action_delete,
    $action_print, $action_print_key,
    $need_help, $need_manual, $verbose
) = ( '' ) x 9;

Надоело при добавлении очередной переменной вручную менять их количество — переписал:

map { $_ = '' } my (
    $search_for_name, $search_for_content,
    $action_clean, $action_delete,
    $action_print, $action_print_key,
    $need_help, $need_manual, $verbose
);

Так тоже работает 🙂

Минус ёлки

Недели три назад заметил, что во дворе дома номер 3 по улице Лесопарковой валяются свежеспиленные голубые ели: одна лежит между детсадовской площадкой и учебно-спортивным корпусом ЮУрГУ, другая — возле северо-западного угла площадки, ближе к жилому дому, третья — возле мусорки. Ёлки до сих пор валяются. Как многие месяцы валялись деревья, поваленные летними бурями.

Пройдя по улице Сони Кривой, я заметил сначала относительно свежие пни возле дома номер 83, там где Subway и пункт выдачи «Связного». Но потом понял — искать надо ближе: сразу через дорогу от места, где ёлки валяются — возле недавно построенного дома номер 5 по Лесопарковой: там пеньки и обнаружились.

Парковка без ёлок

Поэтому есть ряд вопросов:

  • Ёлки, скорее всего, являлись собственностью города и городу нанесён ущерб. Кто ответит за его нанесение? Кто возместит ущерб?
  • Почему в течение многих месяцев во дворе и валяются деревья и висят в воздухе, создавая опасность для людей? Кто обязан следить за состоянием двора дома номер три по Лесопарковой?