Как создать Snap пакет Ubuntu 16.04

Технология Snap разработанная в Canonical для облегчения установки программного обеспечения в дистрибутиве Ubuntu появилась совсем недавно. Она разрабатывалась на протяжении последних нескольких лет, но только к релизу Ubuntu 16.04 стала более-менее готова к использованию широкой аудиторией.

Основное преимущество Snap, это возможность установки программ без зависимостей. Все необходимые программе библиотеки находятся уже в пакете с программой и для ее запуска ничего не требуется от системы. При обновлении вам достаточно обновить один snap пакет, не обновляя всю систему, а при сбоях и ошибках можно откатить пакет до предыдущей версии. Сейчас ходит много споров по поводу того действительно ли хороша технология snap или нужно от нее отказаться в пользу deb пакетов. Но все это покажет время и тестирование, а в этой статье мы рассмотрим создание snap пакетов. Тем более, что создавать их немного проще, чем те же самые deb пакеты.

Создание Snap пакетов в Ubuntu 16.04

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

В этой статье мы рассмотрим как создавать snap пакеты на примере небольшого приложения Samplenote.

Сначала нам нужно установить Snapcraft. Чтобы получить самую новую версию добавим к нашей системе PPA:

sudo add-apt-repository ppa:snappy-dev/tools

Теперь обновим список пакетов и установим программу:

sudo apt-get update
$ sudo apt-get install snapcraft

Когда завершится установка Snapcraft можно переходить к получению исходников программы. Сначала скачаем исходники из GitHub и распакуем их:

wget https://github.com/Automattic/simplenote-electron/releases/download/v1.0.1/Simplenote-linux-x64.1.0.1.tar.gz
$ tar xvzf Simplenote-linux-x64.1.0.1.tar.gz

Поскольку программу не нужно компилировать наша задача немного облегчается. Переходим в папку с программой и инициализируем там окружение сборки Snapcraft:

cd Simplenote-linux-x64

snapcraft init

После выполнения последней команды, в папке появится файл snapcraft.yml. С помощью редактирования этого файла мы и настроим процесс создания нашего пакета snap. Нам понадобится файл такого содержания:

name: simplenote
version: 1.0.1
summary: The simplest way to keep notes.
description: The simplest way to keep notes. Light, clean, and free.
apps:
simplenote:
command: usr/bin/wrapper
plugs:
- unity7
- opengl
- network
parts:
simplenote:
plugin: copy
stage-packages:
- libnss3
- fontconfig-config
- gnome-themes-standard
files:
Simplenote: Simplenote
wrapper: usr/bin/wrapper
icudtl.dat: icudtl.dat
snapshot_blob.bin: snapshot_blob.bin
natives_blob.bin: natives_blob.bin
resources*: resources
libnode.so: usr/lib/x86_64-linux-gnu/libnode.so
libffmpeg.so: usr/lib/x86_64-linux-gnu/libffmpeg.so

Первые четыре строчки - это информация о самом пакете, название программы, версия и краткое и полное описание.

Command - это команда запуска программы, мы будем использовать скрипт warpper, потому, что нам нужно указать дополнительные переменные окружения.

plugs - это интерфейсы, которые может использовать программа. Дело в том, что программы snap работают в изолированной среде, откуда они не могут получить доступ к оборудованию и персональным данным. Чтобы наша программа могла нормально работать ей нужно дать доступ к интерфейсу opengl, unity7 и network.

Посмотреть доступные интерфейсы, и программ, которые их используют можно выполнив команду:

snap interfaces

В разделе parts мы указываем сами файлы программы. А если точнее, то что нужно сделать snapcraft при создании пакета. Поскольку нам ничего компилировать не нужно, мы будем использовать плагин copy, для копирования файлов. Файлы, которые нужно скопировать, перечислены в разделе files. Там есть не только исполняемые файлы, но и все необходимые библиотеки, так что программа получит все необходимые ей компоненты.

Формат записи такой:

файл_в_системе: адрес_файла_в_пакете_snap

Есть одна нестандартная запись:

resources*: resources

Символ подстановки * позволяет скопировать весь каталог. Чтобы не копировать все файлы из системы, мы можем в секции site-packages сказать программе, какие пакеты следует установить в пакет snap, в нашем случае это libnss3 , fontconfig-config и gnome-themes-standard.

Чтобы посмотреть какие библиотеки использует программа, можно воспользоваться командой:

ldd Simplenote | grep Simplenote

libnode.so => /home/sergiy/test/Simplenote/Simplenote-linux-x64/./libnode.so (0x00007f05fb477000)
libffmpeg.so => /home/sergiy/test/Simplenote/Simplenote-linux-x64/./libffmpeg.so (0x00007f05f61ec000)

Обратите внимание, эти библиотеки поставляются вместе с программой, а поэтому нам нужно прописать их в конфигурационном файле snapcraft.yaml. Все остальные библиотеки доступны в системе и будут обнаружены snapcraft автоматически.

Далее создадим файл wrapper:

!/bin/sh
export FONTCONFIG_PATH=$SNAP/etc/fonts
export FONTCONFIG_FILE=$SNAP/etc/fonts/fonts.conf
export XDG_DATA_HOME=$SNAP/usr/share
export LD_LIBRARY_PATH=$SNAP_LIBRARY_PATH:$SNAP/usr/lib/x86_64-linux-gnu/
exec "$SNAP/Simplenote" "$@"

Здесь нет ничего сложного, обычный скрипт на Bash. Мы устанавливаем пути для шрифтов, и указываем программе где нужно искать библиотеки, чтобы libnote.so и libffmpeg.so были успешно найдены. А последняя строка запускает на выполнение simplenote.

Дальше осталось сделать этот файл исполняемым:

chmod +x wrapper

Для начала сборки пакета выполните:

snapcraft

Сборка может занять кое-какое время, а после завершения сборки вы сможете установить пакет:

sudo snap install simplenote_1.0.1_amd64.snap

Для запуска программы вы можете воспользоваться обычной командой:

simplenote

Вот и все, программа установлена и работает. Точно такой же способ создания snap пакетов вы можете использовать для упаковки своих программ.

Выводы

Несмотря на то, что snap довольно спорная технология, ее уже используют многие разработчики программ, в том числе разработчики популярного браузера Firefox. Если вы разрабатываете свое программное обеспечение, то вполне можете создать snap пакеты. Учитывая, что snap скоро будет поддерживать и другие дистрибутивы, то это вполне неплохая затея. Более подробную информацию вы можете получить в официальной документации по snapcraft.

Настройка терминала Ubuntu

Если вы уже не совсем новичок в Ubuntu и уже немного освоились в своей системе, то, наверное, достаточно часто используете терминал. Современные системы Linux позволяют сделать практически все с помощью графических утилит начиная от установки программного обеспечения, до тонкой настройки системы. Но терминал тоже не теряет свою актуальность. При достаточном уровне знаний, в терминале действия выполняются намного быстрее и эффективнее.

Например, вам не нужно искать пункты меню, кликать несколько раз мышкой, выполнять поиск программы по системе и так далее. Достаточно просто набрать одну команду, передать ей нужные параметры и компьютер выполнит все нужные действия. Просто и быстро. Ситуацию делают еще интереснее возможности комбинации команд, перенаправления вывода одной команды в другую и так далее. Но тема сегодняшней нашей статьи не возможности терминала Linux, а настройка терминала в Ubuntu.

Сначала мы рассмотрим как улучшить внешний вид и удобность использования эмулятора терминала, используемого по умолчанию в Ubuntu - Gnome Terminal, а затем рассмотрим как улучшить командную оболочку.

Настройка терминала Ubuntu

Вы можете запустить терминал из главного меню или нажав сочетание клавиш Ctrl+Alt+T:

terminal

По умолчанию в системе терминал выглядит не очень красиво. Но ситуацию можно исправить с помощью установки другой темы Unity, например, Numix:

terminal12

Но в этой статье будет рассмотрена ручная настройка терминала Ubuntu, без установки тем. Для того чтобы настроить внешний вид терминала откройте контекстное меню, кликнув в любой области терминала, откройте пункт Профили и выберите Параметры профиля:

terminal1

На вкладке основные вы можете настроить размеры окна терминала, а также шрифт:

terminal13

Для настройки шрифта установите галочку использовать другой шрифт и выберите нужный шрифт из списка, например, Dejavu Sans Mono Book:

terminal2

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

terminal3

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

terminal5

Теперь терминал выглядит вполне приемлемо, но это еще не все. Хотелось бы еще поговорить о командной оболочке.

Настройка командной оболочки Ubuntu

По умолчанию в Ubuntu используется командная оболочка Bash. Она была изобретена еще в далеких 80х годах для операционной системы Unix в лаборатории Bell Labs. Понятное дело, что с тех пор она была модифицирована и очень сильно улучшена, написана свободная реализация Bash, которую вы сейчас используете и так далее. Но все принципы остались те же.

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

Одна из таких оболочек - fish, или Frendly Interactive Shell. Рассмотрим вкратце ее преимущества. Очень важным моментом fish есть полная подсветка синтаксиса, каждая правильно введенная команда выделяется одним цветом, неизвестная другим, а правильный путь к файлу подчеркивается, таким образом, вы сразу понимаете правильно ли набрали команду, еще не нажимая Enter. Также здесь очень удобный поиск ранее введенных команд в истории, достаточно набрать первые несколько символов команды и начать листать кнопкой вверх, чтобы увидеть все ранее вводимые команды, начинающиеся с этих символов. Более того, когда вы начинаете набирать команду, то оболочка предлагает вам последнюю выполненную команду, начинающуюся на такие символы, достаточно нажать стрелку вправо, и команда готова к запуску. Автодополнение здесь намного лучше чем в Bash, fish дополняет не только команды и адреса файлов, но и опции команд, а это может быть очень полезно для новичков.

А про скрипты Fish вообще говорить не стоит, они намного легче и проще. Намного проще осваиваются новичками и легче для опытных пользователей, поскольку скрипты Bash славятся своей сложностью.

Если вы еще не уверенны, нужно ли ставить оболочку Fish в своей системе, вас никто не заставляет удалять Bash, вы можете просто установить fish и проверить ее возможности, может вам тоже понравиться. Настройка консоли Ubuntu должна включать установку нормальной оболочки.

Для установки Fish в Ubuntu наберите:

sudo apt install fish

Протестировать оболочку не заменяя ее для вашего терминала можно просто выполнив:

fish

terminal10

Если же вы хотите, чтобы эта оболочка использовалась по умолчанию, откройте Параметры профиля, и перейдите на вкладку и там отметьте Запускать команду как оболочку входа и Запускать другую команду вместо моей оболочки. Дальше в поле пропишите адрес файла оболочки fish: /usr/bin/fish:

terminal6

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

Для того чтобы изменить приглашение выполните:

set fish_greeting "Have a lot of fun"

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

В Fish нет файла .bashrc. Но зато есть каталог с настройками и функциями ~/.config/fish/. Там вы найдете все функции, которые могут вызываться из оболочки, а также можете добавить туда свои функции, например создадим алиас для команды rm с помощью функции:

vi .config/fish/functions/rm.fish

function rmi
rm -i $argv
end

funcsave rmi

Конечно, как и раньше осталась возможность использовать команду:

alias rmi "rm -i"

Ее нужно добавить в конец файла .config/fish/config.fish

Еще одной замечательной особенностью этой оболочки есть возможность настройки через графический интерфейс. Просто наберите:

fish_config

terminal8

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

Выводы

Настройка терминала Ubuntu достаточно важное занятие, и важно сделать все как нужно, чтобы вам было удобно работать в системе. В этом вам поможет красивый интерфейс эмулятора терминала, а также функциональная и очень настраиваемая оболочка fish. В нашей статье мы затронули лишь часть возможных настроек, более подробную информацию вы можете найти в официальной документации. Если у вас остались вопросы, спрашивайте в комментариях!

UNetbootin не рекомендуется

Создавая загрузочную флешку с Debian, я воспользовался софтиной UNetbootin. Запись прошла хорошо, да и установка системы тоже прошла без проблем. Но... в начале установки операционки, она выдала мне сообщение о том, что я устанавливаю систему с загрузочной флешки созданный с помощью UNetbootin и сказала, что многие пользователи жалуются на проблемы при установке ОС из-за этого "записывальщика", по этому не рекомендуется его юзать и если возникнут проблемы при установке, перезаписать флешку другой софтиной.

Что же, этого я не знал... проблем не возникало вроде раньше, но все равно спасибо за заботу, буду знать на будущее. Не поленились же сделать такое уведомление, молодцы.

Библиотеки в Ubuntu

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

Все, без исключения, программы используют библиотеки. Даже если это ваша программа и у нее нет своих библиотек, она использует стандартную библиотеку языка программирования С.

В этой статье мы подробно рассмотрим что такое библиотеки Ubuntu, как их устанавливать, где брать и что делать если библиотека установлена, а программа говорит что ее нет. Мы не будем трогать создание библиотек, это совсем не наша тема. Как обычно, начнем с теории.
Читать далее Библиотеки в Ubuntu

Настройка ядра Linux

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

Да, мы не можем включать добавлять неподдерживаемые модули и драйвера устройств, но мы можем настроить такие параметры ядра Linux, как особенности работы процессора, памяти, виртуального пространства памяти, планировщика ядра, сетевой стек и многое другое. Все эти настройки доступны через файловую систему proc. Мы рассматривали подробно ее в предыдущей статье, теперь же остановимся только на директории /proc/sys, с помощью которой мы и будем настраивать ядро.
Читать далее Настройка ядра Linux

Файловая система proc в Linux

Программы пространства пользователя в Linux не могут обращаться к ядру системы напрямую. Но для получения информации от ядра были созданы несколько специальных директорий с помощью которых любая программа или пользователь могут получить данные о состоянии компьютера и ядра. Это файловая система proc и sys.

Из этих папок можно получить любую информацию о вашей системе. Например сколько памяти подкачки сейчас используется, насколько велик размер кеша процессора, какие модули ядра загружены, сколько дисков или разделов доступно и т д. Все это можно получить в обычном текстовом виде из папки proc linux.

В этой инструкции будет рассмотрена файловая система proc, ее структура, назначения файлов и где найти ту или иную нужную информацию. Но сначала немного теории.
Читать далее Файловая система proc в Linux

Vodafone: Опять 25

Мокрофон

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

Читать далее Vodafone: Опять 25

Хотеть - Перехотеть

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

Установка OwnCloud в Ubuntu

Сегодня практически каждый пользуется облачными файловыми хранилищами, такими, как Dropbox, Google Drive, OneDrive, Яндекс Диск и др. Прежде всего в них привлекает возможность синхронизации файлов между устройствами, обмена ими с другими пользователями, а также наличие удобных веб-интерфейсов и для взаимодействия с этими сервисами.

OwnСloud, несмотря на громкое название, вряд ли можно назвать облачным сервисом, однако многими из вышеперечисленных возможностей онлайн-хранилищ он таки обладает. Это веб-приложение для синхронизации данных и предоставления общего доступа к файлам. Доступ к нему возможен, как из веб, так и с помощью приложений-клиентов, доступных для ОС Windows, Linux, OS X, iOS и Android. Далее мы рассмотрим как выполняется установка OwnCloud в Ubuntu 20.04.
Читать далее Установка OwnCloud в Ubuntu

DLNA сервер Windows 10

Создание DLNA-сервера Windows 10В этой инструкции подробно о том, как создать DLNA сервер в Windows 10 для вещания потокового мультимедиа на ТВ и другие устройства встроенными средствами системы или с помощью сторонних бесплатных программ. А также о том, как использовать функции воспроизведения контента с компьютера или ноутбука без настройки.

Для чего это нужно? Наиболее распространенное применение — для доступа к библиотеке фильмов, хранящихся на компьютере с телевизора Smart TV, подключенного к той же сети. Однако, все то же самое относится и к другим типам контента (музыка, фото) и другим типам устройств, поддерживающих стандарт DLNA.

Потоковое воспроизведение видео без настройки

В Windows 10 вы можете использовать функции DLNA для воспроизведения контента, не настраивая DLNA-сервер. Единственное требование — чтобы и компьютер (ноутбук) и устройство, на котором планируется воспроизведение были в одной локальной сети (подключены к одному роутеру или по Wi-Fi Direct).

При этом в параметрах сети на компьютере может быть включено «Общедоступная сеть» (соответственно, сетевое обнаружение отключено) и отключен общий доступ к файлам, воспроизведение все равно будет работать.

Все, что требуется сделать — кликнуть правой кнопкой мыши по, например, видео файлу (или папке с несколькими медиа-файлами) и выбрать «Передать на устройство…» («Привести к устройству…»), затем выбрать в списке нужное (при этом, чтобы оно отображалось в списке, требуется чтобы оно было включено и находилось в сети, также, если вы видите два пункта с одинаковым именем, выбирайте тот, который имеет иконку как на скриншоте ниже).

Меню Привести к устройству в Windows 10

После этого начнется потоковое воспроизведение выбранного файла или файлов в окне проигрывателя Windows Media «Привести к устройству».

Воспроизведение на удаленном устройстве

Создание DLNA сервера встроенными средствами Windows 10

Для того, чтобы Windows 10 выступала в роли DLNA сервера для поддерживающих технологию устройств, достаточно выполнить следующие простые шаги:

  1. Откройте «Параметры потоковой передачи мультимедиа» (используя поиск в панели задач или в панели управления). Параметры потоковой передачи
  2. Нажмите «Включить потоковую передачу мультимедиа» (это же действие можно выполнить из проигрывателя Windows Media в пункте меню «Поток»). Включить DLNA сервер в Windows 10
  3. Дайте имя своему DLNA-серверу и, если требуется, исключите какие-то устройства из разрешенных (по умолчанию возможность получать контент будет у всех устройств в локальной сети). Настройки DLNA-сервера Windows 10
  4. Также, выбрав устройство и нажав «Настроить» можно указать, к каким типам медиа следует предоставлять доступ. Параметры потоковой передачи Windows 10

Т.е. создавать Домашнюю группу или подключаться к ней не обязательно (к тому же в Windows 10 1803 домашние группы исчезли). Сразу после произведенных настроек, с вашего телевизора или других устройств (включая другие компьютеры в сети) можно будет получить доступ к содержимому из папок «Видео», «Музыка», «Изображения» на компьютере или ноутбуке и воспроизводить их (ниже в инструкции также есть информация о добавлении других папок).

Доступ к DLNA серверу с телевизора

Примечание: при указанных действиях тип сети (если было установлено «Общедоступная») меняется на «Частная сеть» (Домашняя) и включается сетевое обнаружение (в моем тесте почему-то сетевое обнаружение остается отключенным в «Дополнительные параметры общего доступа», но включается в дополнительных параметрах подключения в новом интерфейсе настроек Windows 10).

Добавление папок для DLNA сервера

Одна из неочевидных вещей при включении DLNA-сервера встроенными средствами Windows 10, как это было описано выше, — как добавить свои папки (ведь не все хранят фильмы и музыку в системных папках для этого), чтобы они были видны с телевизора, плеера, консоли и т.д.

Сделать это можно следующим образом:

  1. Запустите Проигрыватель Windows Media (например, через поиск в панели задач). Запуск проигрывателя Windows Media
  2. Кликните правой кнопкой мыши по разделу «Музыка», «Видео» или «Изображения». Допустим, мы хотим добавить папку с видео — кликаем правой кнопкой мыши по соответствующему разделу, выбираем «Управление видеотекой» («Управление фонотекой» и «Управление галереей» — для музыки и фото соответственно). Управление DLNA в проигрывателе Windows Media
  3. Добавляем нужную папку в список. Добавление папки для DLNA сервера

Готово. Теперь эта папка также доступна с устройств с поддержкой DLNA. Единственный нюанс: некоторые ТВ и другие устройства кэшируют список доступных по DLNA файлов и для того, чтобы их «увидеть» может потребоваться перезапуск (вкл-выкл) телевизора, в некоторых случаях — отключение и повторное подключение к сети.

Примечание: включить и выключить сервер мультимедиа можно и в самом проигрывателе Windows Media, в меню «Поток».

Настройка DLNA сервера с помощью сторонних программ

В предыдущем руководстве на эту же тему: Создание DLNA сервера в Windows 7 и 8 было (помимо способа с созданием «Домашней группы», который применим и в 10-ке) рассмотрено несколько примеров сторонних программ для создания медиа сервера на компьютере с Windows. По сути, указанные тогда утилиты актуальны и сейчас. Здесь бы хотел добавить лишь еще одну такую программу, которую обнаружил в последнее время, и которая оставила самое положительное впечатление — Serviio.

Программа уже в своей бесплатной версии (есть также платная Pro версия) предоставляет пользователю самые широкие возможности для создания DLNA сервера в Windows 10, а среди дополнительных функций можно отметить:

  • Использование онлайн-источников вещания (для некоторых из них требуются плагины).
  • Поддержка транскодинга (перекодирования в поддерживаемый формат) почти всех современных телевизоров, консолей, плееров и мобильных устройств.
  • Поддержка трансляции субтитров, работа с плейлистами и всеми распространенными форматами аудио, видео и фото (включая RAW-форматы).
  • Автоматическая сортировка контента по типам, авторам, дате добавления (т.е. на конечном устройстве при просмотре вы получаете удобную навигацию с учетом различных категорий медиа-контента).

Скачать медиа-сервер Serviio можно бесплатно с официального сайта http://serviio.org

После установки, запустите Serviio Console из списка установленных программ, переключите интерфейс на русский язык (справа вверху), добавьте нужные папки с видео и другим контентом в пункте настроек «Медиатека» и, по сути всё готово — ваш сервер работает и доступен.

Добавление папок Serviio

В рамках данной статьи не буду подробно вникать в настройки Serviio, разве что отмечу, что в любой момент вы можете отключить DLNA сервер в пункте настроек «Состояние».

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