Страницы

среда, 30 апреля 2014 г.

Rhythmbox синхронизация и извлечение. is_audio_player file

Rhythmbox не позволяет явно экспортировать список радиостанций из пользовательского интерфейса.
Чтобы как-то решить этот вопрос, было проведено небольшое исследование проигрывателя, структуры хранения его метаданных.


Rhythmbox. Место хранения метаинформации


Rhythmbox хранит метаинформацию в домашней папке .local/share/rhythmbox в файле: rhythmdb.xml.
Это обычный xml файл, в котором например список радиостанций храниться в ветке "iradio".

Пример xml-ветки интернет-радиостанции, в файле rhythmdb.xml:

<entry type="iradio">
  <title>Старое радио - Музыка</title>
  <genre>Музыка</genre>
  <artist/>
  <album/>
  <location>http://www.staroeradio.ru/music128.m3u</location>
  <rating>4</rating>
  <play-count>23</play-count>
  <last-played>1398867737</last-played>
  <bitrate>127</bitrate>
  <date>0</date>
  <media-type>application/octet-stream</media-type>
</entry>


※※※


Rhythmbox. Синхронизация и преобразование с помощью встроенной функциональности mp3 в ogg


Медиапроигрыватель Rhythmbox, входящий в поставку Ubuntu, достаточное средство для прослушивания Интернет-радио, музыкальных файлов и подкастов.
Есть встроенная функциональность для синхронизации с iPod, медиплеерами.

Здесь пойдет заметка, о скрытой возможности синхронизации с подключёнными томами (флешками, usb). Первоначально, информацию по этому способу, я получил на ресурсах [1], [2].

Данная возможность позволяет выполнять резервирование системной фонотеки (музыкальной коллекции) встроенными средствами Rhythmbox на внешних носителях, таких как жесткие диски и flash-накопители.

На подключенном томе (флешке, usb-диске), обычного типа Mass Storage Device, создается скрытый файл: .is_audio_player
и заполняется следующим, в соответствии с форматом, частично описанном в [2]:

name="Sacculum musicae"
audio_folders=musica/
folder_depth=3
output_formats=application/ogg
playlist_path=playlists/
playlist_format=audio/mpegurl, application/xspf+xml

Теперь несколько слов о формате файла .is_audio_player :
name - название плеера (нашего носителя с музыкой), которое будет отображаться в списке "Устройства" в пользовательском интерфейсе Rhythmbox.
audio_folders - список папок, куда сохраняется музыка.
folder_depth - глубина вложенности папок плеера. 3 - это будет сформирована структура Группа-Альбом и внутри альбома песня. Разумеется, если тэги корректно заполнены.

output_formats - список поддерживаемых форматов плеером. В нашем случае, только свободный формат Ogg vorbis, что позволит при синхронизации преобразовать mp3 в ogg, что является маленькой приятной особенностью.
Форматы задаются в нотации MIME, списком через запятую.
Например: audio/mpeg,audio/x-ms-wma

playlist_path - папка для сохранения плейлистов.
playlist_format - формат плейлистов, в нотации MIME
Например для формата m3u, MIME-нотация: audio/mpegurl, для формата xspf - application/xspf+xml .

Стоит заметить, что синхронизация Rhythmbox односторонняя, из папки Музыка на компьютере, в плеер (на диск). Это приводит к тому, что на другом компьютере, с пустой базой музыки, происходит и удаление с диска (плеера), всех композиций, при использовании встроенной функциональности синхронизации. Чтобы перенести базу в новую систему, надо использовать функцию "Импортировать".



※※※

Rhythmbox. Извлечение данных о радиостанциях


Т.к. список радиостанций храниться в формате xml, то воспользуемся инструментом xmlstarlet [5]. Это позволяет из консоли манипулировать данными. содержащимися в xml файле.

$ sudo apt-get install xmlstartlet

X-Path выражение для извлечения списка url-радиостанций из xml-файла Rhythmbox (rhythmdb.xml)
Интересующие данные находятся в следующих путях-ветках (X-Path формат):

/rhythmdb/entry[@type=\"iradio\"]
/rhythmdb/entry[@type=\"iradio\"]/title
/rhythmdb/entry[@type=\"iradio\"]/location



Формирование простейшего плейлиста из xml-базы данных Rhythmbox:


$ xmlstarlet sel -I -t -o "#EXTM3U" -t -m "/rhythmdb/entry[@type=\"iradio\"]" -n -o "#EXTINF:0," -v "title" -o " " -n  -v "location"  rhythmdb.xml

-t -o "#EXTM3U" - это формируется заголовок m3u файла,

-t -m "/rhythmdb/entry[@type=\"iradio\"]" -n - это внутренне выбирается (math) каждая подветка (радиостанция), и добавляется перевод строки после предыдущей радиостанции

-o "#EXTINF:0," -v "title"  - это формируется комментарий с названием радиостанции, -v "title" - печатает содержимое xml-тэга title


-o " " -n  - это перевод строки,


-v "location" - это выводится url адрес, печатает содержимое xml-тэга location

rhythmdb.xml - это текущий файл который разбирается.


Вывод также можно направить в файл:

$ xmlstarlet sel -I -t -o "#EXTM3U" -t -m "/rhythmdb/entry[@type=\"iradio\"]" -n -o "#EXTINF:0," -v "title" -o " " -n  -v "location"  rhythmdb.xml > internet-radio.m3u8

Кодировка в Ubuntu, по умолчанию UTF-8.

Есть более продвинутый формат плейлистов XSPF (MIME application/xspf+xml):

$ xmlstarlet sel -T -I -t -o "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" -n -t -o "<playlist version=\"1\" xmlns=\"http://xspf.org/ns/0/\">" -n -t -o "<trackList>" -t -m "/rhythmdb/entry[@type=\"iradio\"]" -n -o "<track>" -n -o "<title>" -c "title" -o "</title>" -n -o "<location>" -c "location" -o "</location>" -n -o "</track>" -t -n -o "<trackList>" -n rhythmdb.xml > internet-radio.xspf

Всё это выделять мышкой - это должна быть одна строка.
Это быстрый однострочный пример, формирование выходного файла как текстового файла, но внутри xml (опция -T). Чтобы сделать правильно, надо написать стилевой лист XSLT.

※※※


Rhythmbox. Чем заполнить коллекцию? Свободной музыкой Тунгуски

  
В [8] представлены альбомы Тунгуски для загрузки, в виде архивных файлов. 
Прямая ссылка на общество:

Представленные несколько готовых альбомов для загрузки и последующих распаковки архива и помещения в папку "Музыка".
Все альбому содержат музыкальные дорожки, с заполненными тэгами, а также обложку, что создаёт законченный вид альбома в медиаплеерах Rhythmbox и Gnome Music.

Спасибо Артёму Драгунову за качественный проект Тунгуска (http://artemdragunov.livejournal.com/tag/Тунгуска).


Тунгуска в Gnome Music 3.10

Также доступно и интернет-радио "Тунгуска" - http://radiotunguska.com/


※※※

P.S. 21.05.2014. Аналогичную операцию (.is_audio_player), проделал с новым телефоном Megafon Login 2, где на sd-карте создана папка Music, которая видна в стандартном Android приложении "Музыка". Теперь доступна синхронизация музыки на Android (Megafon Login 2) и Rhytmbox на Ubuntu.
Дабы избежать перегрузки памяти на телефоне, в настройках синхронизации в Rhytmbox был выбран плейлист "Любимые композиции", в который попадают песни помеченные 5 звёздами.
 
※※※

Ресурсы


1.  How To Use Rhythmbox To Transfer Music To Any Mass Storage Device (Phone, USB Memory Stick) [Sync]. http://www.webupd8.org/2010/06/how-to-use-rhythmbox-to-transfer-music.html
2.  . http://almost-a-technocrat.blogspot.ru/2010/11/isaudioplayer.html
3. A survey of playlist format. http://gonze.com/playlists/playlist-format-survey.html
4. XMLStarlet. http://xmlstar.sourceforge.net/overview.php
5. XSPF specification. http://www.xspf.org/specs/
6. С чем едят формат M3U? http://habrahabr.ru/sandbox/25319/
7. M3U. http://ru.wikipedia.org/wiki/M3U
8. Альбомы Тунгуски для загрузки. http://www.jamendo.com/en/artist/343607/tunguska-electronic-music-society

※※※

пятница, 18 апреля 2014 г.

Математические экспедиции в океане оригинальных источников

Leonardo Eulero imaginis
В процессе поиска вдохновения в оригинальных книгах и заполнения пробелов в понимании вещей, вышел на интересный сайт двух профессоров уже прошедших далекий путь в направлении, в котором я  сделал только лишь несколько первых шагов.

Сайт  профессоров Reinhard Laubenbacher и David Pengelley
"TEACHING WITH ORIGINAL HISTORICAL SOURCES IN MATHEMATICS"
http://www.math.nmsu.edu/~history/



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



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

Однако, всё же интересно, как Эйлер все это придумал? Каков был его ход мысли?

Всё это всплывало вопросами в голове, так что волна подхватила и я пустился в путь поиска и изучения цифровых оригиналов.

Продолжение возможно последует, а возможно и нет....

P.S. Существует и ещё один способ использования цифровых источников оригинальных книг - это их печать в современных цифровых типографиях, в одном-двух экземплярах, для пополнения собственной библиотеки.

P.P.S. Цифровая библиотека "Open library" https://openlibrary.org/, где можно скачать некоторые работы Ейлера (en Euler, лат. Eulero), Лагранжа (Lagrange, De la Grange), в форматах PDF, djvu.

※※※

APPENDIX

Архив работ Leonardo Eulero. http://eulerarchive.maa.org/


※※※






четверг, 17 апреля 2014 г.

Памятка по установке GNU Octave для некоторых расчётов строительной механики и сопротивления материалов

Установка GNU Octave в Ubuntu 14.04 LTS (Trusty)

Для некоторых расчётов небольшого сарайчика, понадобился развитый инструмент вычислений на компьютере под управлением операционной системы Ubuntu.

$ sudo apt-get install octave

Установка дополнительных пакетов Octave


Дополнительные пакеты Octave, упакованные в пакеты Ubuntu, для удобства установки, которые понадобятся для пакета mechanics.


Пакет general - octave-general octave-general



Пакет linear-algebra - octave-linear-algebra


Пакет geometry - octave-geometry


$ sudo apt-get install octave-general octave-linear-algebra octave-geometry


Пакет mechanics -  доступен для скачивания в [4]. В пакетах Ubuntu его пока нет. Внутри этого пакета включена программа ocframe для расчёта ферм методом DSM (Direct stiffness method), являющегося  разновидностью матричных методов.

Установка загруженного пакета производится уже из командной оболочки octave:

octave 1:> pkg install <путь к загруженному файлу>

Думает долго, видимо что-то решает в уме.

Затем загрузка пакета в среду:

octave 1:> pkg load mechanics
octave 2:>

Можно смотреть примеры и приступать в вычислениям.

Чтобы посмотреть что ещё есть в поставке пакетов Ubuntu на тему octave:

$ sudo apt-cache search octave


Ресурсы


1. Официальный сайт Octave. http://www.octave.org/
2. Пакеты Octave официальное хранилище дополнительных пакетов программ. http://octave.sourceforge.net/index.html
3. Программа расчёта методом DSM ocframe. http://ocframe.sourceforge.net/
4. Пакет mechanics. http://octave.sourceforge.net/mechanics/index.html



※※※

суббота, 12 апреля 2014 г.

Установка Eagle CAD в 64-битной Ubuntu 14.04-13.10-13.04

На свежей версии  Ubuntu  Gnome14.04 64-bit установка проста.

Операции производятся в консоли (терминале).

Установка библиотек для архитектуры i386 (32-bit):

gimmor@red$ sudo apt-get install libssl1.0.0:i386 libcrypto++9:i386 libxrender1:i386 libxrandr2:i386 libxcursor1:i386 libfreetype6:i386 libfontconfig1:i386 libxi6:i386

Загрузка и установка Eagle CAD 6.5. http://www.cadsoftusa.com/download-eagle/?language=en

Задание прав на запуск:

gimmor@red/Загрузки$ chmod +x eagle-lin-6.5.0.run

Запуск установщика:

gimmor@red/Загрузки$ ./eagle-lin-6.5.0.run

Запуск среды проектирования электронных схем:

По умолчанию, в домашней папке создается папка eagle-6.5.



В ней надо запускать файла eagle в папке bin.


После запуска можно создать (либо потом указать) папку для проектов.

Чтобы облегчить запуск среды проектирования в оболочке Gnome Shell надо создать ярлык запуска (desktop-файл) и разместить его в /usr/share/applications

Делается под суперпользователем (sudo -s):

gimmor@red:/usr/share/applications # touch eagle.desktop
gimmor@red:/usr/share/applications # nano eagle.desktop

[Desktop Entry]
Name=Eagle
Name[ru]=Eagle. Проектирование электронных схем
GenericName=Electronic CAD
GenericName[ru]=Проектирование электронных схем
Comment=Create an electronics schematic and printed circuit boards
Comment[ru]=Проектирование электронных схем и печатных плат
Keywords=eagle;cad;pcb;schematic;schema;electronic;
Keywords[ru]=проектирование; схема; печатная плата; eagle; электроника

Categories=GTK;GNOME;Science

Exec=/home/gimmor/eagle-6.5.0/bin/eagle %U
Icon=/home/gimmor/eagle-6.5.0/bin/eagleicon50.png
StartupNotify=true
Terminal=false
Type=Application
X-GNOME-FullName=Eagle CAD
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=eagle
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.10.0
X-GNOME-UsesNotifications=true
X-Ubuntu-Gettext-Domain=eagle


После перезагрузки сформируется новый кэш .desktop файлов и можно будет выполнить стандартный запуск, а также добавление в избранное.


Кажется всё.

※※※