Домашний сервер. Часть шестая, конвертирование видео для HTC Legend

Являясь обладателем HTC Legend, периодически смотрю на нем видео, например обедая в кафе или в поездках. Видео лучше всего смотреть конвертированное, так оно меньше весит и точно проиграется. Конвертировать на домашнем компе неудобно в плане того, что комп при этом загружен и практически ничем другим не позанимаешься. Но ведь под столом стоит домашний сервер с Ubuntu Server 10.04, и пусть он менее мощный, зато всегда включен, более чем логично задействовать его для этой цели. Приступим:
Добавляем репозитарий medibuntu с «правильным» ffmpeg и libavcodec-extra-52:

sudo wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list && sudo apt-get -q update && sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring && sudo apt-get -q update

Собственно ставим их:

sudo apt-get install ffmpeg libavcodec-extra-52

Создаем папку для сконвертированного видео:

mkdir /media/mine/media/Movies/HTC

Пихаем скрипт с именем htc_conv.sh в /home/user/scripts:

#!/bin/bash
cd /media/mine/media/Movies
for i in htc*;
do
outfile=${i:3};
ffmpeg -i "$i" -f mp4 -vcodec mpeg4 -s 480x320 -r 25 -b 500k -acodec libfaac -ac 2 -ar 24000 -ab 128k -strict experimental "HTC/$outfile"
mv "$i" "$outfile"
done;

Делаем его исполняемым, а в cron через crontab -e добавляем
0,30 * * * * flock -n /tmp/htc-lock -c /home/user/scripts/htc_conv.sh

Теперь как это всё работает.
В папке /media/mine/media/Movies лежат собственно фильмы у меня. Она же расшарена самбой, чтобы сконвертить нужный фильм я просто добавляю в начало фильма префикс htc, т.е. было:
СуперФильм.avi
стало
htcСуперФильм.avi

Каждые полчаса скрипт отлавливает такие имена и начинает ковертирование, а запускается он через flock чтобы если не отработал предыдущий запуск не запускалась ещё одна копия. После конвертирования результат помещается в /media/mine/media/Movies/HTC, а файлу возвращается его исходное имя.

Т.е. чтобы сконвертировать фильм я просто переименовываю его добавляя префикс htc и всё : ) По мне так очень просто и удобно : )

Сервер конвертирует, я сплю, все при деле, все довольны : )

Естественно данный метод можно использовать не только для HTC Legend, но и для других телефонов хоть для HTC A3333 Wildfire, хоть и вообще не для HTC, достаточно просто поправить параметры ffmpeg : )

P.S. Не в тему, но пусть будет. Любителям новостей в фотографиях и желающим видеть не самые плохие снимки событий происходящих в мире рекомендую frontphoto.net. Я подписался на rss, и надо сказать не жалею, т.к. довольно интересные фото приходят.

Кратенько об установке apache+django на ubuntu server 10.04.1

Есть у меня товарищ, который увлекся связочкой python+Django и заодно решил, зная, что я когда-то тоже немножко программил, увлечь ими и меня, да так решил, что у меня уже по-моему начала образовываться плешь : ) Его старания в общем-то не проходят даром (трудно переть против бульдозера : )) и я сильно потихонечку начинаю осваивать данные, так сказать, технологии. Тем паче, что на работе как раз возникла задача написать кое-что на апаче. «Написать на апаче» неудачная шутка, зато в рифму ))) В общем написать кое-что с веб-интерфейсом. Для чего и были мною выбраны питон и джанго, в целях помимо собственно выполнения задачи ещё и обучения.

В плане хостинга (громкое наверное слово для локального-то сервера) была выбрана ubuntu server 10.04.1. И так ОС установлена, lamp не ставил, т.к. мне нужно только apache из этого набора, в качестве БД будет sqllite3, приступим:

ставим apache2, мод wsgi и sqlite3 (python2.6.5 установился при установке самой убунты):

aptitude install apache2 libapache2-mod-wsgi sqlite3

ставим easy_install для удобной установки всякого-разного потом и django сейчас. Будем ставить именно так, по причине несвежести того, что в репах (1.1.1 супротив 1.2.4):

wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
sh setuptools-0.6c11-py2.6.egg

django:
easy_install django

теперь собственно скоренько настроим всё это хозяйство, чтобы наш проект, который будет неожиданно называться «project» заработал. Лежать он у меня будет в /srv/www/project. Создадим там папочку apache:
mkdir /srv/www/project/apache
в которую поместим файлик project.wsgi следующего содержания:

import os, sys
import django.core.handlers.wsgi
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append('/usr/lib/python2.6/dist-packages/')
sys.path.append('/srv/www/project/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
application = django.core.handlers.wsgi.WSGIHandler()

после этого распишем наши каталоги апачу. Вот так выглядит мой /etc/apache2/sites-available/project

<VirtualHost project:80>
    WSGIScriptAlias / "/srv/www/project/apache/project.wsgi"

    <Directory "/srv/www/project/apache/">
        Allow from all
    </Directory>

     <Directory "/srv/www/project/">
         Order allow,deny
         Options Indexes
         Allow from all
         IndexOptions FancyIndexing
     </Directory>

    Alias /media/ "/srv/www/project/media/"
    <Directory "/srv/www/project/media/">
	Order allow,deny
        Options Indexes FollowSymLinks
        Allow from all
        IndexOptions FancyIndexing
     </Directory>

</VirtualHost>

Для полного достижения гармонии между всеми участниками данного таинства перезагрузим apache:
/etc/init.d/apache2 restart
хотя возможно достаточно было бы и:
/etc/init.d/apache2 force-reload

Вот наверное и всё, после данных телопальцедвижений мой проект, точнее те огрызки, что пока написаны, заработал. Так что пойду ка я играть в программиста дальше… А устав от игр таких подумаю об отдыхе душой и телом, и отличным местом для сего отдыха будет санаторий поляна свалява. Чистый воздух, радующая взгляд природа, отсутствие городского шума, что ещё нужно уставшему IT’шнику ? : )

Домашний сервер. Часть пятая, торрентокачалка

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

Как я упоминал раньше я мельком попробовал transmission-daemon, не впечатлился (за исключением момента предоставления web-интерфейса своими силами без задейстования стороннних web-сервером), так что ставим rtorrent и вебклиентом rutorrent (очень похож на привычный виндовый utorrent). Делал практически полностью как описано на хабре в посте «Домашний linux сервер своими руками». Но в паре мест поправил под себя и в паре мест прошло не совсем гладко, поэтому позволю себе скопипастить оттуда со своими, так сказать правками.

Установка из репозитариев была отметена сразу, т.к. «родной» пакет был собран без xmlrpc-c который расширяет функционал rutorrent.

Устанавливаем всё что необходимо для компиляции xmlrpc-c, libtorrent, rtorrent

apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncurses5-dev
apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev

Компилируем и «заворачиваем» в .deb пакет xmlrpc-c, libtorrent, rtorrent

Я привык хранить исходники софта ставящего не из репо в /root/soft, так что сначала
cd /root/soft, а потом уж дальше:

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure --prefix=/usr && make && checkinstall -D

Тут когда вылезает вот такой диалог:



*****************************************
**** Debian package creation selected ***
*****************************************

Этот пакет был создан с использованием данных значений:

0 — Maintainer: [ root@amorph-hs ]
1 — Summary: [ Package created with checkinstall 1.6.1 ]
2 — Name: [ xmlrpc ]
3 — Version: [ c ]
4 — Release: [ 1 ]
5 — License: [ GPL ]
6 — Group: [ checkinstall ]
7 — Architecture: [ i386 ]
8 — Source location: [ xmlrpc-c ]
9 — Alternate source location: [ ]
10 — Requires: [ ]
11 — Provides: [ xmlrpc ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:


Обратите внимание на пункт под номером 3, у меня там значением стоит буква «c» и пакет не собирался ругаясь на отсутствие цифры в номере версии. Я заменил на c1 и всё стало ок.

cd ..
wget libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
./autogen.sh && ./configure --prefix=/usr && make && checkinstall -D

cd ..
wget libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
./autogen.sh && ./configure —with-xmlrpc-c —prefix=/usr && make && checkinstall -D

К сожалению, rtorrent не умеет работать в режиме daemon, поэтому будем использовать screen

apt-get install screen -y
wget libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh --output-document=/etc/init.d/rtorrent
chmod +x /etc/init.d/rtorrent
sed -i 's/"user"/"torrents"/' /etc/init.d/rtorrent
update-rc.d rtorrent defaults
useradd -d /torrents -m torrents

Создаем конфиг и папки для сессий и готовых торрент закачек, после чего стартуем rtorrent.

mkdir /torrents/.rtorrent_session

cat >> /torrents/.rtorrent.rc <
port_range = 32001-32049
dht = auto
dht_port = 32000
peer_exchange = yes
use_udp_trackers = yes
directory = /media/mine/media/downloads/
upload_rate = 10
download_rate = 100
session = /torrents/.rtorrent_session
scgi_port = 127.0.0.1:5000
EOF

chown -R torrents:torrents /torrents
/etc/init.d/rtorrent start

Теперь займемся вебмордой rutorrent. Для работы rutorrent необходим вебсервер и интерпретатор php.

apt-get install lighttpd php5-cgi php5-cli php5-curl curl -y
lighty-enable-mod fastcgi
echo 'server.modules += ( "mod_scgi" )' >> /etc/lighttpd/lighttpd.conf
cat >> /etc/lighttpd/lighttpd.conf <
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable"
)
)
)
EOF

Плюс добавил в /etc/lighttpd/lighttpd.conf строку для слушания только определенного интерфейса:
server.bind = "192.168.10.101"

/etc/init.d/lighttpd force-reload

Вебсервер готов, теперь будем ставить rutorrent и несколько полезных плагинов к нему.

cd /var/www/
svn checkout http://rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins/
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/autotools
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/erasedata
chown -R www-data:www-data /var/www/

Зайдя по http://192.168.10.101/rutorrent я увидел вебинтерфейс весьма неплохо приближенный у utorrent, а потому привычный и относительно удобный : )

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

Домашний сервер. Часть четвертая, будильник/засыпальник и музыкальная шкатулка

Обеспечим себе сказку на ночь и приятное просыпание утром. Первым делом
sudo aptitude install alsa
т.к. в ubuntu-server её нет по дефолту, что в общем-то более чем логично.

Начнём с засыпания. Ну тут никаких сомнений это mpd, он и музыкой наполнит комнату и аудиокнижки почитает с удовольствием. После инсталла заглянем в его конфиг дабы указать каталог с музыкой и если надо, то параметры вывода звука. После чего рестарт. Ставим клиента на ноут. Я поставил gmpc (Gnome Music Player Client), обновил базу и вуаля, управляем здесь, а звук идет оттуда, волшебство : ))

Теперьча будильник. Будиться я привык под спокойную музыку (инфаркт с утра меня не привлекает), которой иные скорей себе обеспечивают обратный процесс, то бишь засыпания. Ну это как говорится: на вкус и цвет фломастеры разные. Для проигрывания я без затей выбрал mpg123 (mp3 он играет, а больше мне ничего и не нужно), для запуска по расписанию естественно cron. Итак:
crontab -e в консольке чтобы отредактировать файлик крона и написать туда следующее:
45 07 * * 1-5 /usr/bin/mpg123 --random /media/mine/media/music/alarm/*
50 07 * * 1-5 /usr/bin/killall mpg123

Первая строчка призвана собственно для непосредственной побудки в 7:45 рабочих дней желаемыми мелодиями из специально по такому случаю наполненного каталога. А вторая в 7:50 затыкает ненавистный, несмотря на всю прелесть музыки, будильник, чтобы он не наслаждался своей властью слишком долго.

На этом собственно музыкальнобудильная часть серверного воспитания видимо заканчивается. На очереди торренты. Вообще я навскидку попробовал transmission-daemon, но что-то не вдохновился, так что впереди rtorrent и rutorrent видимо.

Домашний сервер. Часть третья, раздача интернета

Приступаем к самой пугающей меня части, аттракцион невиданной щедрости — раздача интернета всем желающим… моим устройствам, т.е. ноуту и компу.

Первое что сделал это поставил dhcp сервер. Тут всё несложно
sudo aptitude install dhcp3-server
простейшая настройка, которую как всегда подсказал гугл. Адреса раздаются, всё ок.
Дальше переткнул провайдеровскую сетевуху с компа в серверок. Поехали…

Инернет у нас через впн, так что первым делом его. Тут проблем никаких благодаря скрипту выложенному на местном форуме, который является адаптацией корбиновского (скрипт кстати помимо пошаговой простой настройки VPN ещё настраивает получение маршрутов по DHCP, дефолтно у меня они не подхватывались). Дальше сложнее, поскольку я не имею ни малейшего понятия о настройке фаерволла вообще и NAT в частности в линуксе, то единственный вариант — гуглить, а чтобы получить доступ к нему был быстренько установлен и запущен squid
sudo aptitude install squid3
Прокси в бразуере указан и, слава IT богам, есть возможность серфить. Потолкавшись туда/сюда, между ufw, iptables и нежеланием всё это понимать ради разовой настройки я всё-таки настроил хоть и очень базово NAT, конспективно это выглядит так:

0. Исходные данные:
eth0 — интерфейс на домашнюю сеть
eth1 — интерфейс на сеть провайдера
ppp0 — интерфейс в интернет, появляющийся после поднятия VPN

1. /etc/sysctl.conf — расскоментил net.ipv4.ip_forward=1 (разрешаем хождение пакетов между интерфейсами)

2. sudo iptables -t nat -A POSTROUTING -o eth1 -d 10.0.0.0/8 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A INPUT -i lo -j ACCEPT

(первая команда НАТ’ит в локалку, вторая в интернет, третья разрешает трафик на loopback-интерфейсе)

3. iptables-save > /etc/iptables.up.rules
(сохранил правила)

4. В /etc/rc.local перед exit 0 добавил:
pon my-inet
iptables-restore < /etc/iptables.up.rules

(поднимаю впн и восстанавливаю правила фаерволла при загрузке сервера)

Reboot. Алилуя, интернет есть. При чем есть везде, и на обоих компьютерах и на ноутбуке, жаль конечно что он у меня немолодой и я бы его с удовольствием заменил например на LENOVO IDEAPAD Z560-380A-BK1, и на телефоне, в общем на всё : ) Знаю, что тут ещё донастраивать более чем полно и что я ничего не закрыл снаружи, но инет есть и это главное на текущий момент : )

Дополнения, указания на ошибки, подсказки и т.п. как всегда выслушиваются и принимаются к сведению : )

Домашний сервер. Часть вторая, файлохранилище

От файл-сервера-хранилища-помойки мне нужно в общем-то немного — беспроблемный доступ к нажитым непосильным трудом медиа и прочим контентам с ноута (Ubuntu 10.04) и c домашнего компа (Windows 7). И если ноут вполне бы удовольствовался установленным на сервере SSH для данной цели, то с виндой такой фокус естественно не пройдет, а посему бразильский танец (самба) был заявлен в качестве одного из номеров нашего концерта заблаговременно.

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

В итоге мой smb.conf выглядит вот так:


#======================= Global Settings =======================

[global]
log file = /var/log/samba/log.%m
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
obey pam restrictions = yes
map to guest = bad user
encrypt passwords = true
passwd program = /usr/bin/passwd %u
passdb backend = tdbsam
available = no
dns proxy = no
netbios name = amorph-hs
browseable = yes
server string = %h server (Samba, Ubuntu)
unix password sync = yes
workgroup = WORKGROUP
syslog = 0
security = share
usershare allow guests = yes
panic action = /usr/share/samba/panic-action %d
max log size = 1000
pam password change = yes
load printers = no

bind interfaces only = True
interfaces = eth0 192.168.10.104
hosts deny = ALL
hosts allow = 192.168.10.101 192.168.10.102 192.168.10.103 127.0.0.1

#======================= Share Definitions =======================
[media]
guest ok = yes
writable = yes
public = yes
path = /media/mine/media
available = yes

[install]
guest ok = yes
writable = yes
public = yes
path = /media/mine/install
available = yes

Скажу честно samba настраивал впервые, конфиг соответственно честно найден на форум.убунту.ру и слегка подправлен под себя. Хотелось беспарольности и в качестве обеспечения безопасности доступ по IP. Вроде так оно и есть теперь. Хотя возможно это не лучший вариант. Если у кого-нибудь есть идеи/предложения/улучшения с удовольствием выслушаю.

Следующим этапом homeserver билдинга будет его интернетизация и посему «Че-то я очкую, Славик» : )

Домашний сервер. Часть первая, общая идея и установка базовой системы.

Стукнуло мне, как впрочем уже и многим другим судя по тематическим ресурсам, завести собственную домашнюю животинку под названием домашний сервер или home server как некультурно : ) выражаются некоторые несознательные англоговорящие (или претендующие на это) граждане. Ну и хочется, чтобы кушало это чудо скромненько, то бишь счета за электричество не вводили в состояние шока. Задачи первоначально планируются более чем тривиальные, как то: файл-сервер (он же файлопомойка, он же backup сервер, т.е. если что хватаем под мышку и спасаемся согласно Плану эвакуации по гост 12.2.143-2009 со всех ног), интернет-сервер, торрентокачалка/раздавалка, ну и ещё может несколько менее распространённые функции для домашнего сервера — будильник и засыпальник (ну привык я засыпать под аудиокниги, можете потыкать пальцами и похихикать).

Что мы имеем по железу:
- основа всего интеловская мать с интегрированным процессором Atom 510, INTEL D510MO
- память, две планочки Corsair по 512 Мб снятых с домашнего компа (не проблема, т.к. там ещё осталось : ) )
- винт, террабайтник Hitachi Deskstar 7K1000.B, опять же пожертвованный домашним компом : )
- корпус, из под старого компа, большой ATX’ный. Т.к. лишние деньги отсутствуют и жаба задушила покупать mini-ITX’ный при наличии этого, вполне себе работающего.

Проблем в сборке не возникло никаких, за исключением мелочи в виде покупки переходника питания для SATA винта. Смотрится mini-ITX платка в полноразмерном корпусе конечно комично, ну да и ладно : )
домашний сервер изнутри

В качестве ОС конечно же ubuntu server 10.04. Поскольку SATA DVD привода у меня нет, так же как и внешнего, то ставить пришлось с флешки, которую сделать мне любезно помогла программка Universal USB Installer. Про установку особо говорить нечего, из предлагаемых при установке сервисов выбрал только OpenSSH и Samba. После установки соответственно выдернул клавиатуру и вернул монитор домашнему компу, т.к. ни то ни другое уже для руления не требовалось. Обновил систему, установив последние на текущий момент обновления, поставил mc. На этом часть первая марлезонского балета завершается. Континуед, как говорится, ту би…

Ubuntu 10.04 Release Candidate

Вселенское счастие близится братия и сестрия, ибо ниспосылает на нас благодать африканскую Шатлворт и иже с ним прочие Марки. Ну как-то так. А сегодня репетиция под названием Release Candidate. Да-да, именно в день рождения дедушки Ленина выходит «пробник» релиза с долгосрочной поддержкой Ubuntu 10.04, он же Lucid Lynx, он же первый релиз в этом году, он же очередной светоч в царстве (нетёмном надеюсь) любителей трех букв LTS (а вы каких подумали ?), он же очередной житель моего многоубунтострадального ноута. Правда пока не решил какой конкретно вариант Ubuntu примет в свои теплые объятия мой Acer Extensa.

Желающие могут начать уже усиленно мониторить http://cdimage.ubuntu.com/releases/10.04/ на предмет появления вышепредставленного релиз кандидата.
Ну а я, несмотря на имеющееся всё же некоторое нетерпение, тем не менее проявлю силу воли в течении одной недели, загляну туда 29 апреля сего 2010 года и подброшу работки своему торрент-клиенту для того чтобы осчастливить магнитные просторы своего жесткого диска ISO образом релиза Ubuntu 10.04 LTS. Чего и вам желаю.

Новое оформление Ubuntu в 10.04

Как вы наверное уже знаете (я то знаю точно уже :) ) в следующем релизе Ubuntu помимо LTS’ности и очередных модных и не очень нововведений будет ещё и новая тема оформления, то бишь приевшийся многим, в том числе и мне, коричневый Human стиль будет заменён на что-то свежее. А вот что именно свежее нам наконец-то и показали:


Почитать в оригинале можно тут..
Перевод есть на хабре.
Так же там есть новые логотипы и Boot Splash.

Теперь что касается новой темы. Если кратко, то не впечатлили совсем. Всё та же коричневость, разве что фоновый рисунок другой. Кнопка закрытия окна слева — это как-то вообще аля Мак. Имхо люди много лет пользовавшие Ubuntu будут привычно дергать мышку вправо и обламываться, тоже самое будут делать новички после Windows и лишь маководам будет комфортно. Как вы думаете много яблочников пересаживаются на Ubuntu ? : ) Думаю их будет даже меньше, чем людей могущих себе позволить аренду недвижимости в Испании, и я, к сожалению, тоже не вхожу в их число, как хотелось бы : -) А там тепло, красиво и вообще хорошо… Эх… Что-то я отвлекся…

Конечно всё это настраиваемо и легко, цвет кнопки, валлпапер, но тем не менее множество людей, и я в том числе кстати, пользуются практически дефолтным оформлением. Так что…

P.S. Я тут кстати на работе поставил альфу 3-ю убунты. Вполне юзабельно кстати, ну по крайней мере по итогам 2-го дня :) Тут оформление пока старое, видимо попозжей пришпилят.

График выхода Ubuntu

Как ни странно многие мои знакомые несмотря на использование Ubuntu (в той или иной мере и тех или иных её разновидностей) не имеют ни малейшего представления о казалось бы очевидных вещах, как то, что 10.04 — это например 2010 год и 4-й месяц или, что названия версий начинаются с одной буквы (Jaunty Jackalope, Karmic Koala) которые идут по алфавиту. Именно для таких «незнаек» :) появилось видимо нижележащее видео, которое коротенько и рассказывает в наглядной форме о графике выхода Ubuntu: