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

Копирование с 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

Двенадцатое Комодо — бесплатные баги

Недавно вышла Komodo IDE 12 — интегрированная среда разработки, где, помимо прочего, есть, как и раньше, отладчик перловых скриптов, прогон тестов, профилировщик, г̶у̶й̶^W графический интерфейс к системам контроля версий и ещё дофига всего. В сильно похожем на неё редакторе Komodo Edit, который стал бесплатным ещё раньше, этих плюшек нет — есть лишь схожий вес.

Теперь оно всё бесплатное, но, увы, радоваться рано:
во-первых, глюки и тормоза никуда не делись, потому что внутри — всё тот же файрфокс, питон с библиотеками и яваскрипт суммарным весом в четверть гигабайта,
во-вторых, Komodo IDE теперь интегрируется с ActiveState Platform тех же авторов и требует для чего-то, выходящего за пределы простого редактирования и связи с СКВ, загадочных танцев с бубном: то, что раньше работало «из коробки» (например, отладка и запуск скриптов), теперь не запускается никак, даже после р̶а̶с̶к̶у̶р̶и̶в̶а̶н̶и̶я̶ ̶м̶а̶н̶о̶в̶^W^W внимательного чтения документации.

Если оно не заработает как надо, придётся снова править код, например, в Geany, а отлаживать и коммитить — с командной строки.

И они ещё борются за звание дома высокой культуры и быта

2020 год, самый популярный веб-сервер — nginx, но у Open Journal Systems до сих пор нет документации по установке этой системы управления научным журналом под нужным сервером

We don’t have an official installation guide for it.

Предлагают и дальше читать форумы.

Отбросим костыли

В прошлую пятницу вышла Open Journal Systems 3.2.0.0 и там наконец-то имена авторов и пользователей многоязычны «из коробки», а не после танцев с бубном и применения костылей.

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

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

Дополнение: 20 марта вышла версия 3.2.0-1 — там переключатель работает

Не бравурно

Ради вёрстки нотного сборника пришлось всё-таки наладить относительно новый компьютер (ну он тоже не новый, но хотя бы сильно шустрее старого), а в нём — сюрприз! — лилипондовые ноты компилируются как-то странно: LilyPond выдаёт кучу ошибок

make
lilypond a4.ly
GNU LilyPond 2.18.2
Processing `a4.ly'
Parsing...
Interpreting music...
MIDI output to `part-bass.midi'...
Interpreting music...
MIDI output to `part-soprano1.midi'...
Interpreting music...
MIDI output to `part-soprano2.midi'...
Interpreting music...
MIDI output to `part-alto1.midi'...
Interpreting music...
MIDI output to `part-alto2.midi'...
Interpreting music...[8][16][24][32][40][48]
Preprocessing graphical objects...
warning: no glyph for character U+E062 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E050 in font 

независимо от способа запуска: хоть мышкой в кнопки Frescobaldi тычь, хоть в терминале команды набирай — итог один.

Да и внешне результат далёк от желаемого:

Ноты с ошибками

Причина оказалось простой, но из лога совершенно невозможно понять в чём же дело — действительно, LilyPond не мог найти нужных символов, но шрифт DejaVu Sans тут ни при чём — символов не было, потому что используемый в этих нотах шрифт Bravura (хороший, кстати, шрифт — крут как тот, что в лилипонде по умолчанию, но при этом в нём скрипичный ключ не имеет лишних изгибов) отсутствовал в системе. Решается легко — копированием шрифтовых файлов в /usr/share/lilypond/ВЕРСИЯ/fonts/otf

Цветной Subversion

Git умеет «из коробки» раскрашивать то, что выводит в консоль, а Subversion — нет. Надоело руками каждый раз перенаправлять вывод svn diff в colordiff — написал простенькую раскрашивалку. Когда-то умела красить только вывод подкоманды status, теперь понимает blame (praise, annotate, ann), diff (di), help (?, h), status (stat, st) — и сами подкоманды, и их синонимы.

https://github.com/shoorick/svn-st-color

Тестирование PHP-приложений из Geany

Когда-то я настраивал запуск тестов перловых Mojolicious-приложений прямо из IDE Geany. Потом довелось попробовать микрофреймворк Slim для PHP — ну да, работает, хотя тесты там более многословные по сравнению с перловыми.

А теперь попробуем настроить Geany для запуска тестов в современных PHP-приложениях — например, для использующих уже упомянутый Slim. Для запуска тестов в PHP существует PHPUnit — это не единственный инструмент, хоть и весьма популярный. Настройки тестирования зависят от проекта — в каждом проекте они могут быть своими. В Geany 1.27 настройки вызываются через меню: Project → Properties → вкладка Build либо Build → Set Build Commands:

  1. Задаём имя команды, под которым она будет отображаться в меню — нажимаем на пустую кнопку в столбце Label (в моём примере это была вторая сверху кнопка, на которой теперь написано Test).
  2. Указываем в столбце Command путь к PHPUnit — он может лежать, например, в подкаталоге vendor/bin относительно корня приложения. В случае, если он лежит внутри проекта, базовый путь проекта можно записать как %p.
  3. В столбце Working directory указываем путь к корневой папке приложения.
  4. В строке Error regular expression указываем регулярное выражение для поиска ошибок:
    ^(.+):(\d+)$
    PHPUnit выводит в сообщении об ошибке разделённые двоеточием полный путь к файлу и номер строки с ошибкой. Если даблкликнуть^W дважды щёлкнуть по сообщению, можно быстро перейти к соответствующей строке, кроме того, все строки, вызвавшие ошибки тестирования, выделяются подчёркиванием красной волнистой линией.

После настройки тесты можно будет запускать кучей разных способов: через меню, кликом по кнопке с кирпичом, а также с клавиатуры (по умолчанию — клавишей F9).

Один белый, другой синий — два слона весёлых

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

Аська выступает

ICQ (точнее, Mail.ru Group), похоже, хочет заставить пользователей переползти на использование нового клиента. Мне кажется, эффект будет обратным — народ разбежится.

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