Shoor/нал

Акын-программист

Прибито гвоздём
  1. Всё, написанное здесь ниже — личное мнение автора либо цитата, что указывается явно. Редакция автор в переписку вступает (например, посредством комментов), однако рукописи не рецензирует и не всегда возвращает. Автор предпочитает писать и читать на русском языке, хотя может (или когда-то мог) на английском, немецком, перле, пхп, яваскрипте, C/C++, ассемблере процессора Intel 8086, бейсике, паскале, а также на ЯП ПМК «Электроника МК-52». В изучении иврита, итальянского, питона, руби, татарского, форта, французского и эсперанто автор пока не преуспел.
  2. Анонс:
  3. В записях используются метки — используйте их для поиска нужной темы.
  4. Основной адрес этого блога — shoorick.ru (с октября 2013). В ЖЖ — копия. Помимо ЖЖ транслируется в:
  5. Этот блог не является средством массовой информации.
  6. Используемые обозначения:
    • цитаты и фрагменты программного кода
    • программный код
    • клавиатурный ввод
    • аббревиатуры и другие сокращения

Ищу работу перловым программистом
Рыжий
shoorick
Предварительные финансовые итоги уходящего года неутешительны: мало того, что от кредиторской задолженности не удалось избавиться — она многократно выросла, превысив месячный доход. Учёт расходов не помог их уменьшить — не на чем экономить. Значит, надо больше зарабатывать. Для начала попробуем взять дополнительную работу на несколько часов в день, не бросая работу основную: на ней никак не выйдет передать дела за две недели — слишком много накопилось за пятнадцать лет.

Итак,
ищу работу программистом, желательно на перле, удалённо либо в Челябинске, до 20 часов в неделю, от 15 долларов в час. Резюме — http://shoorick.ru/resume/alexander_sapozhnikov.html
Метки: , ,

Афиша юбилейного концерта
Рыжий
shoorick
Владимир Александрович прислал афишу и кучу текста. Посмотрел я на афишу да и перерисовал её с нуля, чтоб читалось лучше и весь текст поместился:

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

Кому надо — забирайте: есть в PDF и PNG на 300 dpi. Формат — A4.
http://shoorick.ru/2014/12/23/concert-150111-poster/

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

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

  • Мужской хор русского культурного центра города Челябинска,

  • Академический женский хор «Мечта»,

  • Солисты — ученики детской школы искусств № 1.


Билеты — по 150 рублей — распространяются участниками концерта, и, скорее всего, в кассах их нет.
http://shoorick.ru/2014/12/19/concert-150111/

Губернатор считает, что Ильменку надо проводить в традиционное время на том же месте
Рыжий
shoorick
Житель Миасса Михаил Пищулин, чья видеозапись ильменского урагана ходила по интернету и ТВ, побывал на очередной встрече блогеров с губернатором (в этот раз меня туда не звали — ну и ладно) и сообщает:
В самом конце, на музыкальной теме, Борис Александрович заявил, что считает правильным в следующем году проводить Ильменский фестиваль, проводить в то же время, проводить в том же месте, но определённым образом подготовить территорию.

http://shoorick.ru/2014/12/16/ilmenka-same-place/

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

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

Инициализация переменных
Рыжий
shoorick
Объявлял как-то переменные и присваивал им пустую строку:
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
);

Так тоже работает :-)
http://shoorick.ru/2014/12/03/variable-initialization-via-map/

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

Ель валяется возле мусорки Ель валяется во дворе
Ель Ель

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

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

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

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

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



P. S. is000 пишет в chelchel_ru Дровосеки-вандалы

http://shoorick.ru/2014/12/03/no-spruces/

Как не замусоривать экран при совершении HTTP-запросов средствами модуля Net::Curl::Easy
Рыжий
shoorick
Чисто перловые HTTP-клиенты, включая широко известный модуль LWP — не самые быстрые, что вполне логично. Гораздо быстрее работают, например, те модули, что используют cURL. В одном из рабочих проектов понадобилось ускорить чтение из сети — это оказалось узким местом. Я проверил — действительно, cURL работает шустрее, чем LWP, при этом к cURL в перле есть несколько интерфейсов. Результаты моего замера вышли такими:
                    Rate     LWP WWW::Curl::Simple   Net::Curl::Easy
LWP                474/s      --              -38%              -88%
WWW::Curl::Simple  760/s     60%                --              -82%
Net::Curl::Easy   4115/s    768%              441%                --

(под LWP здесь понимается LWP::UserAgent).

Шустрый LWP::Curl выбыл из соревнования, потому что я не нашёл, как в нём добавить нужный заголовок к HTTP-запросу. Был проверен ещё и WWW::Curl::Easy — он показал ту же скорость, что и Net::Curl::Easy, вывалив при этом кучу предупреждений — так что он тоже выбыл из забега.

Однако при проведении замера я столкнулся со странным поведением Net::Curl::Easy — при выполнении метода perform на экран (точнее, в STDOUT) иногда выводились полученные данные. Выяснилось, что правильный способ запуска описан в руководстве не на Net::Curl::Easy, а на WWW::Curl — надо не только выполнить запрос, но и указать до выполнения запроса, куда писать полученное содержимое:
# A filehandle, reference to a scalar or reference to a typeglob can be used here.
my $response_body;
$curl->setopt(CURLOPT_WRITEDATA,\$response_body);

В Net::Curl::Easy это тоже сработало.
http://shoorick.ru/2014/11/27/clean-net-curl-easy/
Метки: ,

Уфимский автор-исполнитель Виктор Кузьменко выступит 3 декабря с концертом в Челябинске
Рыжий
shoorick
Константин Просеков пишет:
Концерт известного Уфимского барда и поэта Виктора Кузьменко в Челябинске.
3 декабря 2014 года, 19:00, кинотеатральный зал для детей и молодежи «Спартак» — проспект Ленина, 19 (ост. «Горки») 200 р.

Афиша

Продолжает Михаил Богуславский:
Виктор Кузьменко не подобен метеору. Он не ворвался с шумом и треском в мир бардовской песни. Виктор входил постепенно, аккуратно, застолбив за собой этапы творческого пути. Рос он, росли его песни, росло влияние барда на читающую и слушающую публику. Немало для этого сделал вышедший в 2008 году поэтический сборник «Недосказанные слова».

Так кто же он, Виктор Кузьменко?

Виктор Александрович Кузьменко родился 13 июня 1956 года в городе Кутаиси. В Уфе живёт с 1963 года. С 1979 по 1985 жил и работал в Казахстане, в городе Ермак. Первые песни написаны в этот период.

С авторской песней познакомился в 1986 году в Уфе в клубе «Тургай» (ныне «Сентябрь»). В 1986–1987 годах — лауреат городских фестивалей. В 1987 году стал дипломантом фестиваля имени Валерия Грушина.

Стихи Виктора публиковались в газетах «Ленинская смена» (Алма-Ата), «Путь» (Ермак), журнале «Бельские просторы» (Уфа).

У каждого зрителя свои любимые песни. Мои любимые: «Зелье приворотное», «Калина-ягода», «Осенние костры», «Караван», «Сентиментальная песня», «Пароходик».

Виктор уже удостоен высшей степени признания зрителя. Его песни, попали в список народных. И в электричках «жалистно» распевая «Калину-ягоду», обещают «урыть», каждого, кто утверждает, что знаком с автором этой «народной» песни. Право, есть ли признание выше?

http://shoorick.ru/2014/11/27/vistor-kuzmenko-chelyabinsk/

Как добавить обозначение инструмента не перед первым нотным станом
Рыжий
shoorick
LilyPond умеет, как и многие другие попадавшиеся мне нотные редакторы, указывать название инструмента либо голоса слева от нотного стана. Доступны два варианта именования нотного стана: полный, задаваемый параметром instrumentName применяется у самого верхнего нотного стана в партитуре (или у их группы), сокращённый shortInstrumentName — у всех остальных. В отечественных хоровых нотах нередко ставят только сокращённые наименования партий возле верхней группы нотных станов (если вообще ставят), а возле остальных групп не ставят ничего.

Если хоровое произведение, набранное в лилипонде, начинается с занимающих целую строку нескольких тактов, где поёт только одна партия, и нам хочется скрыть остальных, кто молчит, получится странная ситуация, если мы отметим партии как сказано выше (первая группа нотных станов — кратко, остальные — никак) — солирующая партия будет обозначена, остальные — нет. Это может привести к путанице.

Однако можно сменить название партии в любой момент, не только при описании нотного стана (\new Staff), но и в произвольном месте:
% 25
\voiceOne
\set Staff.shortInstrumentName = "Б."
e4 e8 f f f
\set Staff.shortInstrumentName = ""

Результат:

Ноты — смена обозначения партии
http://shoorick.ru/2014/11/25/lilypond-add-instrument-name-at-middle-of-page/
Метки: , ,

Задание собственных обозначений для тактовых черт
Рыжий
shoorick
Набирал ноты с репризой и двумя обычными тактовыми чертами — написал код \bar ":||" — не получил желаемое. Более того — тактовая черта вообще пропала. Похоже, в лилипонде нет такого сочетания тактовых черт (что странно — там же есть и двойные черты, и сочетания знака репризы с тонкой и толстой чертой). Не беда — можно нужный знак определить и потом его использовать:
\defineBarLine ":||" #'(":||" "" " ||")
% ...
\bar ":||"

Результат:

Двойная тактовая черта с репризой

Если же в определении тактовой черты не указать параметр span (точнее, оставить его пустым — \defineBarLine ":||" #'(":||" "" "")), то тактовые черты будут идти только внутри нотного стана, не выходя за его пределы, даже если для группы нотных станов задано использование общих черт:

Двойная тактовая черта с репризой и разрывом
http://shoorick.ru/2014/11/24/lilypond-double-bar-with-repeat/

Новости языкознания
Рыжий
shoorick
термин «вокзал» произошел от сочетания «вокальный зал»

сообщает нам некто Марина Семина на сайте Chelyabinsk.ru

Да ну? Вокальный зал? А унитаз — это универсальный тазик?
http://shoorick.ru/2014/11/21/vauxhall/

Из-под отладчика
Рыжий
shoorick
В перловых скриптах (во всяком случае, в тех, что запущены в юниксоподобных системах) определить, запущены ли они из-под отладчика, достаточно просто — надо проверить, существует ли переменная окружения PERLDB_PIDS:
my $DEBUG = exists $ENV{'PERLDB_PIDS'};

Однако в отладчике, встроенном в Komodo IDE 8.5, такой способ не работает — вместо PERLDB_PIDS устанавливается другая переменная PERL5DB со значением, например, BEGIN require '/opt/komodo/lib/support/dbgp/perllib/perl5db.pl' . А в штатном отладчике переменной PERL5DB нет. Значит, надо проверять обе:
my  $DEBUG
    =  exists $ENV{'PERLDB_PIDS'}
    || exists $ENV{'PERL5DB'};

http://shoorick.ru/2014/11/19/how-to-detect-perl-debugger/

upd/20.11.2014: Всё проще — существует переменная $^P
Метки: ,

В Сыктывкар и в Мурманск
Рыжий
shoorick
Недавно Тёма Лебедев писал о том, что гугл отслеживает положение владельцев андроидофонов (тоже мне, удивил — это давно известно), затем тов. Ведмедь написал про то же самое.

Решил я посмотреть, что ж гугл узнал о моих шатаниях, глянул на карту — а там вончо:

Карта

Гугл с какого-то перепугу решил, что меня заносило в Сыктывкар и в Мурманск. Врёт.
http://shoorick.ru/2014/11/19/google-tracking/

Смотрим размер файла в бесконечном цикле
Рыжий
shoorick
Для подсчёта количества байт, символов, слов и строк в юникосоподобных операционных системах предназначена программа wc. Иногда хочется запускать её, например, раз в секунду, чтоб следить за выполнением какого-нибудь долгого процесса.

Сделал по-быстрому скрипт, который просто вызывает wc и выводит его результат, пока пользователю не надоест и он не нажмёт Ctrl+C
#!/usr/bin/perl

print STDERR "Press ^C to exit\n";
my $cmd_line = 'wc ' . join ' ', @ARGV;
my $out;
while (1) 
    $out = `$cmd_line`;
    chomp $out;
    print "\cM$out";
    sleep 1;

Запустить можно, например, так:
wcloop -l some-big-file.txt

http://shoorick.ru/2014/11/18/watch-for-filesize-in-infinite-loop/


upd/15:48: товарищ подсказывает:
watch -n 1 wc -l?
И верно ведь посдказывает!

Темп над пустым тактом
Рыжий
shoorick
Обнаружил глюк в лилипонде: он не даёт поставить изменение темпа над пустым тактом.

Ноты

Задача — поставить в нотах изменения темпа — ritenuto и какой-нибудь ещё. С каким-нибудь ещё проблем не возникает — LilyPond спокойно принимает команду
\tempo "Медленнее"

А вот с ритенуто такой способ не проходит: я пробовал менять способ записи паузы: вместо R8*9 писал s8 r1, пробовал сдвигать команду изменения темпа в фортепианную партию (это не должно влиять на то, где отображается темп — всегда сверху) — не помогает: в лучшем случае ритенуто пропадает, в худшем — часть нот сдвигается по горизонтали и в партитуре начинается хаос.

Решение оказалось простым — можно просто добавить к паузе обычную надпись и выделить её как темп — полужирным.
R8*9^\markup  \bold "riten." 

Такой способ работает.
http://shoorick.ru/2014/11/11/tempo-in-empty-measure/

Снова к нам
Рыжий
shoorick
Нижегородцы Павел Юдин и Олег Новосельцев (театр бардов «Грань») в декабре снова приедут на Южный Урал:

  • 4 декабря — Усть-Катав,

  • 5 декабря — Миасс,

  • 6 декабря — Челябинск, улица Свободы, 155 — зал Профцентра,

  • (ещё под вопросом) 7 декабря — Шадринск.


Павел Юдин и Олег Новосельцев
http://shoorick.ru/2014/11/11/gran-to-us/

Рельеф — в единых цветах
Рыжий
shoorick
Когда я пробовал рисовать позиционную физическую карту, не сильно парился о точности соответствия цветов тем, что используются на остальных картах — тыкать пипеткой в соседние карты не хотелось. Приблизительно попал — и ладно, потом подправлю. Однако товарищи вики-географы не дремлют, шлют ссылки на правильные палитры. Хорошо, попробуем исправить.
Цифры и перловый кодСвернуть )
Эти цвета не такие насыщенные как те, что получились сначала. Южный Урал в этой палитре получается таким:

Рельеф Южного Урала
http://shoorick.ru/2014/10/31/relief-united-colors/

Карта с рельефом
Рыжий
shoorick
Пару лет назад я пробовал рисовать карты из данных OpenStreetMap при помощи Maperitive — и даже что-то говорил об этом в докладе на UWDC-2013. Что понравилось ещё тогда — возможность «из коробки» отображать рельеф: Маперитив умеет сам ходить в сеть за открытыми данными о рельефе (SRTM) и потом строить из них контуры горизонтали и рисовать отмывку.

В воскресенье, когда гулять не было возможности, а делать что-то полезное не было желания, вспомнил я прошлые свои упражнения и решил сделать хоть что-то полезное — например, позиционную карту для википедии. Позиционными картами там называют такие карты, на которые потом легко можно нанести метки, указав координаты в виде широты и долготы. Подобные карты, как выяснилось, создать достаточно просто: надо лишь взять изображение, и указать для него необходимые данные, чтоб понятен был способ пересчёта координат. Поддерживаются несколько типов проекций карт, по умолчанию используется равноугольная цилиндрическая проекция — как раз такая, как в OpenStreetMap, для карт в этой проекции достаточно указать лишь широту верхнего и нижнего краёв и долготу левого и правого.

У меня не получилось сразу в Маперитиве получить карту такого вида как мне надо: реки текли поверх водохранилищ и водоёмы никак не хотели с административными границами сочетаться. Потратив немного времени на чтение документации и безуспешные эксперименты, пошёл другим путём: сделать пару отдельных карт — с границами и водами — да и собрал их воедино в Inkscape. Маперитив умеет экспортировать карты в SVG. Вот уменьшенный фрагмент того, что вышло:

Север Нязепетровского района

Шаблон с картой лучше делать не по инструкции — там образец неправильный. Лучше взять за образец какой-нибудь существующий шаблон и слегка его поменять: надо изменить координаты границ карты, её названия и имена используемых файлов. Если речь идёт об изготовлении карты актуального состояния существующей местности (то есть, мы рисуем не историческую карту и не карту вымышленного мира), то имеет смысл нарисовать несколько карт одной и той же области, хотя бы две: физическую и политическую/административную — википедия позволяет выбрать нужную карту из шаблона как вручную, так и автоматически: например, в географических статьях (о реках, озёрах, горах) автоматически отображается физическая карта, если она есть.

Пример статьи с этой картой — Шемаха (приток Уфы). В статье Шемаха (Челябинская область) используется тот же самый шаблон, но карта там уже другая — административная.
http://shoorick.ru/2014/10/28/map-with-relief/

В Челябинске всё суровое, даже осень
Рыжий
shoorick
Прогноз погоды
http://shoorick.ru/2014/10/25/hard-autumn/

Чем почесать провода
Рыжий
shoorick
В Челябинске после недавних погодных катаклизмов вот уже несколько дней не работает электротранспорт — обледенела контактная сеть. Сегодня видел необычный способ очистки, без всяких щёток: едут гуськом три троллейбуса с автономным ходом и поднятыми токоприёмниками, в том месте, где льда мало, между проводом и токоприёмником вспыхивает электрическая дуга, которая, наверное, и отогревает провод. Интересно, они дугой контактную сеть не пожгли совсем? Автономный ход, видимо, нужен на случай особо толстого льда, чтоб хоть как-то тронуться. Кстати, троллейбусы на батарейках как-то неважно в гору стартуют.

Троллейбусы
http://shoorick.ru/2014/10/21/wires-scrubbing/

Октябрьский лёд
Рыжий
shoorick
Снег, пошедший в октябре, первым уже никак не назвать — были снегопады и в апреле, и в июле. Снег сменился дождём — теперь всё вокруг покрыто льдом. Лёд гнёт и ломает не успевшие избавиться от листвы деревья.

Лёд
ЛёдЛёд
Лёд ломает деревья


http://shoorick.ru/2014/10/19/october-ice/

Переезд
Рыжий
shoorick
Юлькин сайт переехал (похоже, уж года три как) — теперь адрес стал чуть короче: http://bootyavka.ru/
Десять лет прошло...
Метки: ,

К зиме подготовились
Рыжий
shoorick
Несколько дней назад уже́ было известно о нынешнем снегопаде — синоптики не соврали. Сейчас народ, поди, опять начнёт бухтеть, что снег, дескать, выпал ну столь неожиданно, что городские службы оказались к нему неподготовленными.

Ну почему же? Готовились, сам вчера видел — электрогирлянды на липы наматывали:

Развешивают гирлянды
http://shoorick.ru/2014/10/17/ready-to-winter/

Холодный октябрь
Рыжий
shoorick
17 октября. На Южный Урал снова пришла зима.

Ель и снег

Десять лет назад середина октября тоже была холодной. С гололёдом.
http://shoorick.ru/2014/10/17/cold-october/

Регулировка света фар на Peugeot Partner
Рыжий
shoorick
Когда в инструкции к нынешнему своему автомобилю я не нашёл описания процедуры регулировки ближнего света фар, особо не удивился: ну зачем писать такое в инструкции к импортному автомобилю. Удивился я, когда не обнаружил такой информации в камасутре руководстве по эксплуатации, техническому обслуживанию и ремонту — в конце концов, это не такая уж сложная операция: уж точно проще, чем разборка двигателя, в той же книге описанная. Но нет — в книгу авторы зачем-то включили отдельный пункт 12.8 «Регулировка фар — общие сведения», где сразу же послали нафиг:
Точная регулировка световых пучков фар возможно только с помощью специального оборудования, предназначенного для этой цели. Поэтому подобная работа должна выполняться дилером Peugeot/Citroën или на станции технического обслуживания, имеющей соответствующее оборудование.

Не думаю, что настройка света фар, допустим, жигуля, принципиально отличается от настройки света пыжика — в книжках про отечественные машины не делают какого-то особого секрета из настройки фар. Да и на пунктах техосмотра я не раз видел плакаты, описывающие, как должны светить фары. Поэтому вопрос остался лишь один — что покрутить для изменения высоты угла места. В крупных фарах, используемых в Peugeot Partner Origin / Citroën Berlingo First (то есть, в машинах, выпущенных с 2002 по 2009 год) регулятор представляет собой белый полиэтиленовый винт с шестигранным отверстием, находящийся с той стороны фары, что ближе к продольной оси автомобиля. Например, на правой фаре он находится слева:

Общий вид

Для регулировки достаточно повернуть этот винт: вращение по часовой стрелке (во всяком случае, на правой фаре) поднимет световой пучок, вращение против часовой — опустит. Винт проворачивается достаточно туго: голыми руками у меня не вышло его провернуть: можно воспользоваться Г-образным шестигранным ключом либо, как я сделал, складной отвёрткой с храповым механизмом. Размер ключа (расстояние между противоположными гранями) — 6 миллиметров либо ⁷∕₃₂ дюйма.

Регулировка

Теперь моя машина светит правильно.
http://shoorick.ru/2014/10/14/peugeot-partner-headlight-adjust/

Двадцать шестой троллейбус вернётся на Первое озеро
Рыжий
shoorick
С понедельника, 13 октября, сообщает Челябинск.ру меняется трасса движения троллейбусного маршрута № 26 — он снова будет ходить из Первоозёрного через центр города, улицы Братьев Кашириных и Чичерина к северо-западной конечной, на углу Комсомольского проспекта и Молдавской.

Карта

На марсрутах.ру уже опубликовано свежее расписание.
http://shoorick.ru/2014/10/11/trolleybus-26-return/

Указание языка в URL страниц в Open Journal Systems
Рыжий
shoorick
Open Journal Systems — система управления электронными научными журналами — имеет одинаковые адреса страниц, написанных на разных языках. Посетитель, зашедший на сайт научного журнала, работающего на OJS, либо увидит страницу на языке по умолчанию либо, если раньше уже заходил и менял язык, на том, что выбрал. Кому-то такой подход нравится, кому-то — нет. На самом деле — вполне нормальная ситуация.

Тем не менее, возникла задача всё-таки получить возможность явно указать язык в адресе страниц. Переключение выбранного языка делается средствами самой OJS — достаточно зайти (то есть, выполнить GET-запрос) по адресу вида адрес-журнала/user/setLocale/локаль?source=путь/куда/идти/дальше, например, http://vestnik.susu.ru/cmi/user/setLocale/ru_RU?source=/cmi/issue/current — переход по этой ссылке приведёт к выведенному на русском языке оглавлению текущего выпуска серии «Вычислительная математика и информатика» Вестника Южно-Уральского государственного университета.

С одной стороны, всё украдено до нас ничего делать не надо — URL с указанием языка уже доступен. Но какой-то он длинный, неаккуратный. Хочется сделать покороче. Чтоб не лезть во внутренности OJS, можно исправить настройки сервера. Для случая, когда используется Apache, а адрес журнала имеет вид http://hostname/journal, достаточно добавить пару правил для mod_rewrite:
RewriteRule ^en(glish)?/(\w+)(/?.*)$ /$2/user/setLocale/en_US?source=/$2$3 [L]
RewriteRule ^ru(ssian)?/(\w+)(/?.*)$ /$2/user/setLocale/ru_RU?source=/$2$3 [L]

Это даст возможность использовать URL вида http://hostname/язык/journal/путь, где язык может быть как названием нужного языка, так и его двухбуквенным кодом. Для уже рассмотренной серии «Вестника ЮУрГУ» теперь можно применять такие ссылки:

http://shoorick.ru/2014/10/07/ojs-specify-language-in-url/

Трамвайная схема — можно и в TileMill
Рыжий
shoorick
В марте я рисовал для википедии челябинскую трамвайную схему при помощи TileMill, однако как выделить трамвайные пути самим тайлмиллом, я не знал. Пришлось тогда экспортировать схему в SVG и затем редактировать полученный SVG-файл в Inkscape, вручную выделяя нужные рельсы и меняя им внешний вид.

На самом деле в том, чтоб TileMill нарисовал трамвайные пути, нет особо хитрой магии. И сейчас расскажу, как нарисовать их, не беря в руки красный маркерСвернуть )
Результат:

Схема трамвайных путей

Для того, чтоб убедиться в работоспособности метода, этого вполне достаточно.

Бросается в глаза отсутствие подсветки на мостах — связано это с тем, что слой #bridge находится выше, чем #roads_high. Возможный способ решения — завести свой слой железных дорог (а для этого надо уже́ лезть в imposm-mapping.py, но теперь это не страшно), поместить его выше слоя с мостами и написать для железнодорожного слоя свои стилевые правила.
http://shoorick.ru/2014/10/07/tram-sshema-tilemill/

Раскрасим домики
Рыжий
shoorick
Итак, после предыдущих упражнений здания на нашей карте обзавелись номерами и высотой. Что дальше? Дальше можно, например, раскрасить здания в разные цвета. Можно раскрасить дома в зависимости от основного их предназначения (то есть, в зависимости от содержимого тэгов amenity и building). Можно — в зависимости от принадлежности здания.

Когда-то на сайте нашего университета располагалась схема студенческого городка, на которой были здания четырёх разных цветов: общежития, учебные корпуса, прочие здания студгородка, а также посторонние здания, в студгородок не входящие. То есть, на той схеме здания выделялись и по предназначению, и по принадлежности.

Сделаем то же самое на карте OpenStreetMapСвернуть )
Результат:
Карта с разноцветными домами
http://shoorick.ru/2014/10/06/building-color/

Из вордпресса в гугл-плюс — всем
Рыжий
shoorick
WordPress умеет автоматически делать кросспосты посылать копии новых заметок в популярные социальные сети. С недавних пор к таким сетям добавился и Google+ (раньше для отправки заметок в гуглоплюс нужна была платная версия плагина Social Network Auto Poster). По умолчанию создаваемые в гуглоплюсе записи доступны не всем, а только френдам, точнее тем пользователям, кто включен в ваши круги. Я неоднократно пытался найти в вордпрессе способ изменить круг читателей — всё никак не мог. Оказалось, всё описано в документации — настройки публикации скрываются не в вордпрессе, в самом Google+, на странице Settings → Apps & activities.
http://shoorick.ru/2014/10/05/wordpress-to-googleplus/

Больше этажей!
Рыжий
shoorick
Продолжаем эксперименты с обработкой карт напильником. В прошлый раз удалось добавить на карту номера домов — сегодня попытаемся сделать дома чуть выше.

С одной стороны в CartoCSS есть свойство building-height, описывающее «высоту» зданий — это видно на крупных масштабах (от 17). В OSM Bright величина building-height постоянна, что даёт на карте здания одинаковой высоты.

Карта

Но нас это не устраивает — мы сделаем по-другомуСвернуть )

Результат:

Карта OSM со зданиями разной высоты

В следующий раз мы рассмотрим способ раскраски зданий в разные цвета.
http://shoorick.ru/2014/10/04/more-levels/
Метки: ,

Ветка
Рыжий
shoorick
Ветка

Обои: 2560×1440 (16:9), 2560×1536 (8:5), 1920×1440 (4:3), 1920×1536 (5:4).
http://shoorick.ru/2014/09/28/branch-water/