Домашно приготвено е-обучение

Хоноруван преподавател съм в магистърски факултет на Нов български университет. Преподавам „Уебсайтовете отвъд уебдизайна – използваемост, достъпност, съдържание“ и „Съвременни компютърни езици за уеб“.

Преди година и половина със семейството ми се преместихме в провинцията – живеем в село на 100км. от София. Това има множество положителни ефекти, но качеството на достъп до интернет няма нищо общо с това в големия град.

Както на всички преподаватели, така и на мен ми се налага да преподавам онлайн. Въпреки че НБУ предлага възможности за виртуална класна стая, реших да потърся решение извън инфраструктурата на университета, което да ми позволи „извънкласни“ срещи със студентите и консултации с тях.

Така се оформиха моите изисквания/пожелания към системата, която да използвам в преподавателската си дейност:

  • конферентна видео и аудио връзка – темите, които преподавам, предполагат студентите да задават въпроси и да правим дискусии.
  • споделяне на екрани – сега си дадох сметка колко мощен инструмент е класическата черна(бяла) дъска.
  • да имам контрол върху работата на услугата – качество, настройки и др. подобни.
  • да е извън инфраструктурите на големите доставчици на подобни услуги – поради увеличаване на трафика по време на пандемията доставчиците обявиха намаляване на качеството. В такава ситуация трябва да се търси разпределение на натоварването вместо централизиране.
  • да не изисква правенето на акаунти - животът ще трябва да продължи и след кризата. Безкрайното правене на акаунти за какви ли не услуги неминуемо ще се отрази на сигурността и личното ни пространство.
  • да мога да записвам лекциите, с разрешението на студентите, разбира се, за да са достъпни за онези, които не са могли да присъстват.

Решението Jitsi

Снимка на екран споделен с видеоконферентната система Jitsi

Отностелно рано в процеса на проучване попаднах на jitsi.org – проект с отворен код, който се подсигурява от компанията 8x8.com и с участието на немалко български разработчици. Проектът може да се използва безплатно и като софтуер като услуга (SaaS).

Предпочетох да направя собствена инсталация, за да имам повече контрол върху настройките на системата, а и да избегна използването на потенциално натоварена инфраструктура.

Уточнение

Като изключим часовете ми в НБУ, през повечето време моите „жици“ скучаят. С удоволствие ще ги предоставя безплатно на преподаватели, които имат затруднения с организирането на преподавателския си процес онлайн – нужно е само да ми изпратят имейл на atanas@karashenski.com с кратко описание – какво преподават, в кои дни и часове, и колко души е аудиторията им.

Реализация

Виртуална машина, в която да инсталирам „жиците“, избрах да ползвам от cloudware.bg – услуга на Нетера, с които работя повече от 10 години и съм изключително доволен.

CPU Cores: 2
RAM 2GB
SSD: 40GB
Network: 100Mbps shared

Инсталационната процедура (видео), описана от разработчиците на jitsi.org препоръчва използването на Ubuntu 16.04 LTS. Командите по-долу са от това видео – по-лесно е да се копират, отколкото да се преписват от видеото.

Разработчиците предлагат три различни варианта за уеб сървър – моят избор е с Nginx като reverse proxy, защото по-късно бих могъл (още не съм) да имплементирам допълнителна функционалност в него.

Смяна на парола:

passwd

Обновяване на инсталираните пакети

apt update
apt upgrade
reboot

Извличане на ключа, с който е подписан софтуерът

wget https://download.jitsi.org/jitsi-key.gpg.key

Проверка за валидност (пожелателна). Резултатът от първата команда е два реда. Редът, започващ със pub посочва ключ и имейл адрес. Втората команда извършва търсене на ключ по имейл адрес.

gpg jitsi-key.gpg.key
gpg --search-keys dev@jitsi.org

Добавяне на ключа и харанилището на jitsi към списъка с достъпни хранилища

apt-key add jitsi-key.gpg.key
echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list
apt update

Инсталиране на уеб сървър nginx

apt -y install nginx

Инсталиране на jitsi със сертификат от letsencrypt

apt -y install jitsi-meet
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Промяна в конфигурацията на jitsi, позволяваща да се дистрибутира последния избран видео поток - така се постига оптимизиране на трафика при голям брой участници. Редактира се посочения файл, като your-domain-here се заменя с домейна, който сте използвали при инсталацията.

vim /etc/jitsi/meet/meet.your-domain-here-config.js

Стойността на channelLastN трябва да се установи така:

channelLastN: 1,

Резултат

– Дотук добре – казвал след всеки етаж онзи, който падал от осмия етаж.

Два блока, всеки от два учебни часа със средно 10 студенти преминаха без технически затруднения. Моята връзка беше с най-ограничен ресурс – 4G Net Box от A1. По време на часовете студентите бяха с, по подразбиране, изключено видео и включено аудио – така всички виждат преподавателя и екраните, които споделя, могат да се включват с въпроси по аудио канала, както и през чат – също част от „жиците“. Функцията „вдигане на ръка“ определно е много полезна.

За съжаление не успях успешно да „подкарам“ компонента jibri, който се използва за записване на конференциите. Използвах друга виртуална машина с повече ресурси, но записът приключваше след около 40 секунди.

Предстои да опитам да включа един компютър като участник и да използвам вградения в Windows 10 Game bar, за да направя запис, както и да пробвам възможностите за streaming към Youtube.

Благодарности

Изключителни благодарности за екипа на Jitsi за добре работещия софтуер, предоставен в отворен код и с походящ лиценз. Важно е в такива моменти да отчитаме приноса и на онези компании, които застават зад такива проекти, давайки им възможност да се развиват и да са полезни за всички.