Архив рубрики: picture

Спою в воскресенье

Зимой я предполагал, что весной меня не будет в Челябинске и я не смогу выступить в концерте солистов, но планы поменялись — репетиции возобновлены, концерт на носу — уже в ближайшее воскресенье.

22 мая в 17:30 в Челябинске на улице Коммуны, 69 в Пушкинском зале Центральной библиотеки имени Пушкина (это взрослая библиотека в восточной части дома) — концерт академической вокальной музыки.

Исполнители — лауреаты областных, зональных и международных конкурсов вокалистов — солисты и ансамбли вокально-хоровой школы «Мечта»: Дарья Денисова, Надежда Ворониченко, Ольга Власова, Анастасия Аксёнова, Александр Сапожников. Художественный руководитель и педагог — Заслуженный работник культуры РСФСР Владимир Шереметьев, концертмейстер — лауреат международных конкурсов Наталья Пецкус.

В программе — арии из опер, романсы, песни русских и зарубежных композиторов.

Вход свободный.

Больше нот!

Семь лет назад я замерял скорость нотного набора, когда используешь LilyPond — на простых хоровые нотах без аккомпанемента получалось около 0,8 листа в час. С аккомпанементом, как я предполагал, скорость должна была упасть ещё в несколько раз.

Сейчас набираю в MuseScore — он становится всё лучше и лучше. Попутно и трудозатраты отмечаю — привык делать это после некоторых работ, где оплачивалось потраченное время. Получается около одного листа в час (уточнение после изучения отчёта — а иногда и полтора, то есть три листа за два часа), причём с аккомпанементом. Без аккомпанемента, вроде, раза в три быстрее. Но вывод из таких замеров остаётся прежним — программирование оплачивается более щедро и набор нот можно оставить лишь в роли хобби, а не основного заработка.

Как добавить флаги в меню выбора языков Google Translate

Google Translate знает много языков. Очень много. И выбирать их только мышкой без помощи клавиатуры сложновато — из-за большого количества выглядящих похожим образом элементов трудно быстро найти нужный, не тратя время на чтение всех названий.

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

Существуют браузерные дополнения, позволяющие задавать свои стилевые правила для конкретных сайтов — для Firefox, Google Chrome и других брауеров, основанных на Chromium, это делает Stylebot. Попробуем добавить стилевые правила для отдельного пункта — укажем не только иконку (пусть будет флаг), но и цвет:

div[data-language-code="lt"] div.Llmcnf {
  color: #060;
}

div[data-language-code="lt"] div.Llmcnf:before {
  content: "🇱🇹";
  padding-right: .25em;
}

Стало гораздо заметнее:

Как долго в Google Translate будет использоваться название класса Llmcnf — не возьмусь предсказывать, но пока такой метод работает и работает уже не первую неделю.

Если помечать таким образом не все языки, а только нужные, их найти будет достаточно легко — например, раньше я всё время очень долго искал немецкий, потому что искал не German, а Deutsch — теперь же вижу его сразу:

¬🍓 — не ягодка

0. КДПВ — флажки и шарики общим числом сорок пять.

1. Пятнадцатое марта приходится на вторник — прямо как в 1977 году. Отметим в ближайшую субботу девятнадцатого на традиционном месте в карьере.

Карта

Мясо, чай и гитара будут. Дрова есть — они который год есть в очень большом количестве, ближайшего валежника ещё лет на десять хватит, если его не уберут.  Снега в лесу много и если верить месячному прогнозу погоды, можно предположить, что и через четыре недели снега будет достаточно, чтобы кататься с гор. Сейчас можно найти сугробы глубиной по колено.

Вишлиста традиционно нет. Я как всегда турист, гитарист, старший брат и лохмат. Можно дарить всякое разное или приходить просто так.

oo⚑o⚑⚑oo

0. КДПВ — некоторое количество флажков. Рисовать все сорок четыре (101100₂) как-то лень.

1. Пятнадцатое марта пришлось на понедельник — отметим в ближайшую субботу двадцатого на традиционном месте в карьере.

Карта

Мясо, чай и гитара будут. Дрова есть. Сегодня на солце было вполне по-весеннему, хотя сне́га ещё полно и на бубликах с гор ездить можно. Прогноз — слегка отрицательная температура с переменной облачностью и снегом — за неделю не растает.

P.S. Вишлиста традиционно не существует. Но можно исходить из того, что я по-прежнему могуч и гитарист. Ну и турист, велосипедист, автомобилист, бас-гитарист, вокалист, программист и даже сисадмин.

Re: Как сдвинуть одинокую вершину

Я пробовал добавлять в граф невидимые вершины и рёбра для того, чтоб управлять положением видимых вершин. Но есть и другой способ: можно поместить вершины в один кластер — вершины сдвинутся:

digraph G {
    graph [ rankdir=LR ]
    node [ shape=box, fontname="PT Mono", fontsize=32 ]

    subgraph cluster_values {
        color=blue
        style="rounded,dashed"

        "'value'" [ fontcolor=grey, color=grey ]
        42
    }

    name [ shape=cds, style=filled, fillcolor=wheat ]
    name -> 42
}

Попутно обнаружился ряд интересных моментов:

  1. Имя субграфа должно начинаться со слова cluster для того, чтобы можно было его раскрасить и подписать. Если не будет, то параметры style, color, fillcolor, label и аналогичные будут проигнорированы.
  2. Если субграф используется только для группировки вершин, а отображать его совсем не надо, можно дать ему любое имя, но в таком случае надо добавить параметр rank=same для того, чтобы вершины выстроились рядом.

Концы строк в LibreOffice

Writer — текстовая часть пакета LibreOffice — аналог Microsoft Word — имеет странную особенность: если поставить в диалоге замены галочку «Регулярные выражения», то выражение \n будет иметь разное значение в зависимости от того, где его написать: в строке поиска оно соответствует переводу строки ↲, вставляемому сочетанием клавиш Shift+Enter, но в строке замены это же самое будет уже концом абзаца ¶, который вставляется одиночным нажатием клавиши Enter.

Как же заменить концы абзацев на переводы строк?

На форуме по LibreOffice нашёлся рецепт:

  • Вводим где-нибудь перевод строки (Shift+Enter), копируем его в буфер обмена
  • Вызываем диалог поиска и замены клавишами Ctrl+H либо через меню: Edit → Find & Replace
  • В поле Search for пишем $
  • Раскрываем при необходимости группу параметров Other options и отмечаем там Regular expressions
  • Нажимаем кнопку Find All — выделятся концы абзацев, закрываем диалоговое окно
  • Вставляем из буфера переводы строк
диалог поиска и замены

Я проверил в LibreOffice 6.1.5.2 — работает.

Как сдвинуть одинокую вершину

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

digraph G {
    graph [ rankdir=LR ]
    node [ shape=box, fontname="PT Mono", fontsize=32 ]

    name [ shape=cds, style=filled, fillcolor=wheat ]
    name -> 42

    "'value'" [ fontcolor=grey, color=grey ]
}
Вершина value находится слева

Вершина оказывается слева, но я хочу сдвинуть её правее. Подсмотрел на stackoverflow идею сделать невидимое ребро и попробовал применить её в своём случае. Для начала попробуем добавить ещё одну вершину и связать её ребром с той, которую надо сдвинуть — успешно:

none -> "'value'"

Сделаем невидимым ненужное ребро:

none -> "'value'" [ style=invis ]
Невидимое ребро

и ненужную вершину — тоже. После этого получится именно то, что надо:

none [ style=invis ]
Вершина value сдвинута вправо

Копирование с Gist на GitHub

Бывает, что мелкие фрагменты программного кода, заброшенные на Gist, со временем разрастаются до состояния, когда надо бы выделить им отдельное нормальное хранилище на Гитхабе — с багтрекером и остальными плюшками.

На https://gist.github.com/ishu3101/830b556b487de5d69690 нашёлся и был испытан на практике такой метод:

1. Создать новый репозиторий на Гитхабе.

2. Склонировать гист:

git clone git@gist.github.com:4b84d4a8d8404ede668225de68fb96ba.git

3. Переименовать получившийся каталог и зайти в него.

4. Добавить удалённый репозиторий (см. Pro Git 2.5 Git Basics — Working with Remotes, по-русски Основы Git — Работа с удалёнными репозиториями):

git remote add github https://github.com/username/repository-name

5. Отправить на Гитхаб:

git push github master

Но есть и более простой способ — импортировать через https://github.com/new/import

Импорт проекта на Гитхаб

Такой способ подходит, если надо всего лишь скопировать файл на Гитхаб и не заниматься дальнейшим его поддержанием в актуальном состоянии и на gist.github.com