Wikilogs
Easy Networking with Vagrant and VirtualBox
When we are playing with vagrant boxes on VirtualBox, we should use three network adapters for each box. What, why, what problems and how to deal with it? Lets discuss.
2016-09-09 MediaWiki4Intranet — развертываем для разработки и в production c помощью Vagrant и Ansible
Как быстро бежит время!
Проекту MediaWiki4Intranet уже больше десяти лет, а нашим попыткам натягивать сову на глобус MediaWiki для всех интранет-задач внутри IT компании и вовсе лет 12.
И изначально все было достаточно просто и понятно — стандартный PHP-проект, в духе «скопируй файлы в настроенный PHP-хостинг». Было не зазорно вести разработку/доработку в винде, под LAMP-окружениями типа XAMPP, а на линукс-машину выкатываться через SVN.
Поэтому мы в свое время и завели такую штуку, как Windows-сборка Mediawiki4Intranet, где обычным каталогом лежали все необходимые утилиты/фреймворки (включая TeX, Graphviz, Sphinx), и любой виндовс-пользователь мог попробовать нашу вики, и даже, не приходя в создание, править и создавать какие-нибудь расширения[1].
Но время идет.
MediaWiki из моностекового монолитного PHP-проекта, с классической моделью «генерация страницы на сервере» постепенно превращается в мультистековый микросервисный проект с realtime UI — так, например, появившийся WYSIWYG-редактор требует специально поднятого сервиса на node.js. На подходе даже мгновенное коллаборативное редактирование в стиле «etherpad/googledocs»…
Все это уже не развернуть тупым копированием файлов, и нереально влом тащить все это под Windows — к тому же, почти все вменяемые вебразработчики ушли на Mac/Linux. Впрочем, современные тренды разработки вовсе требуют вынести за скобки систему разработчика (все это холиварно и его личное дело), а все-все-все зависимости проекта инкапсулировать и виртуализировать/контейнеризировать[2]. Т.е. все, полноценная MediaWiki — больше не проект для shared hostingа[3], но и shared hosting уже почти умер для нормальных проектов. Если кто не в курсе, то цены на изолированный VPS-контейнер упали уже совсем ниже плинтуса[4], и разница в плате за «VPS vs Shared» уже давно не проблема.
Проблема остается только в сложности разработки и обновления нашего «бандла» — как его ставить, чтобы можно было в пару действий, с минимальной кривой обучения
- запустить что-то работающее,
- получить и
- тестовую версию для локальной отладки коротким REPL-циклом — в смысле, чтобы можно было открыть файлы в IDE и править их по живому, отлаживаться в построчном отладчике с нормальным просмотром переменных и брейкпоинтами.
- надежное конфигурирование удаленного сервера на production.
- легко конфигурировать свои вики-инсталляции, чтобы они использовали именно ту функциональность, которая нужна, наследовали для гибкости общие параметры и т.п..
Именно для этого, мы в свое время сделали инструмент Repo.php, специально заточенный для развертывания MediaWiki4Intranet, но…
- Он все-таки про развертывание PHP-части, где-то конкурируя с Composer[5]
- Развернуть и раскатать систему с нуля, поставить nod-ный стек, настроить firewall и т.п. — за пределами его функциональности.
- Никто уже не хочет слышать ни о каких новых, и тем более самопальных системах развертывания, когда DevOps-зоопарк уже взрывает всем мозг, а горшочек все продолжает варить и они все лезут и лезут на свет.
…
Поэтому, мы взяли все самое распространенное-стандартное-проверенное:
- Vagrant — для эффективного руления локальными машинами.
- Ansible — для декларативной конфигурации сервера на «Centos 7»[6]-машин. Чтобы с одной стороны, больше никогда не опускатся до простыней инструкций в духе «отредактируйте /etc/xxx, заведите каталог /var/log… ×100500 …», с другой — все это легко читаемо и понимаемо даже теми, что впервые слышит про ansible.
Т.е.
- Почти ничего учить не придется.
- Если что и придется — это полезные знания, уже ожидаемые от ITшников.
Итак, допустим, что у вас здоровая Linux-система[7]. Ставите:
- Vagrant
- пакетным менеджером или просто RPM/DEB с сайта.
- Ansible
- пакетным менеджером или, если вдруг он в вашем дистрибутиве очень старый или его нет — через «pip install ansible».
- VirtualBox
- обязан быть в пакетах, но если нет — можно и с сайта.
Дальше:
git clone git@github.com:mediawiki4intranet/mediawiki4intranet-vagrant-ansible.git cd mediawiki4intranet-vagrant-ansible vagrant up
Пока идет развертывание, прописать в /etc/hosts
127.0.0.1 intrawiki.local.com
Все должно кончится хорошо, без страшных слов о падениях и красной раскраски терминала. Только желтые и зеленый цвета и что-то типа
PLAY RECAP ********************************************************************* intrawiki : ok=468 changed=132 unreachable=0 failed=0
Для очистки совести можно спросить:
vagrant port
и убедится, что форвардинг, какой-то такой:
22 (guest) => 2222 (host) 80 (guest) => 15304 (host) 3306 (guest) => 15305 (host)
Т.е. вы получаете SSH доступ к машинке по 2222 порту, доступ к MySQL базе по 15305, ну и можете просто открыть в броузере http://intrawiki.local.com:15304/ — там вас ждет настроенная MediaWiki, с почти всеми нашими расширениями, Sphinx-поиском, IntraACLем и WYSIWYG-редактором.
Там много-много всего хорошего, я только упомянул самое главное —
- WYSIWYG-редактор нужен, чтобы привлечь к редактированию слабоITшных менеджеров, которые боятся кода, но любят таблицы — которых в вики коде редактировать непросто.
- Права на страницы, именно это делает MediaWiki пригодной для чего-то кроме энциклопедии «для всех».
- Хороший полнотекстовый поиск с русской морфологией важен русскоязычным пользователям.
Итак, логиньтесь туда админом-бюрократом WikiAdmin/Wiki1729Admin, и делайте все что угодно.
Все настроено и работает! Ну, должно работать. It works on my machine, шучу, проверял на нескольких.
Да, когда таких локальных виртуалок становится много, возникает путаница с портами, лень подключать/отключать файловые системы, и в результате, я написал некий набор утилит, которые решают эти проблемы:
- сами монтируют файловые системы активных vagrant-машин,
- позволяют SSH-логинится по имени vagrant-машины,
без необходимости выяснять, или вообще помнить все эти безумные цифры портов. Но об этом как-нибудь в следующий раз.
Можно зайти туда по SSH:
vagrant ssh
или
ssh vagrant@0 -p 2222
или
ssh root@0 -p 2222
Можно смонтировать всю файловую систему по sshfs
sshfs root@0:/ -p 2222 -o reconnect /mnt/intrawiki
Разумеется, проверьте («vagrant port»), что у вас именно 2222 SSH-порт и заведите каталог для монтирования (/mnt/intrawiki или где вам удобно).
И локально настроенная машина уже готова к PHP-отладке — если ваше IDE умеет PHP-xdebug-отладку — просто включите его слушать 9000 порт, и отладка пойдет, вам только стоит отмаппировать выполняемые PHP-файлы на подмонтированную по SSH файловую систему (об этом обычно спрашивает само IDE[8]).
Ну а если хотите выкатывать наружу, правите hosts.ini, указывая IPшник и sudo-пользователя вашей VPS[9], нужный домен и название сайта, и запускайте !intrawiki-production.
Ну, а теперь разьяснение, что и где, и зачем.
- Vagrantfile
- Настройки локальной виртуалки. Тут что-то менять необязательно. Хотя можно вместо монтирования по SSH сделать разделяемую папку, можно рулить выдаваемым CPU и памятью, можно сменить порты. Тут же можно отключить отладочность локальной инсталляции — может вам нужна именно производительная локальная вики для работы, а не разработки.
- hosts.ini
- как деплоить production-сервер, тут настраивать обязательно. Не забудьте сменить пароль к WikiAdmin, а то я приду и взломаю вас :).
- group_vars/all
- Настройки-константы, определяющие куда все это встанет, и в крупноблочно — что. Так, установив «tex: no», если вам не нужны формулы и поддержка LaTeX-разметки, можно отказаться от жирного TeX-стека, а задав «wysiwyg: no», отказаться от WYSIWYG-редактора VisualEditor, и жирного nodejs-стека. Кстати, пока они не очень хорошо живут вместе — WYSIWYG-редактирование может убить «latex»-блоки.
- roles
- Сконфигурированные ansible-роли.
- roles/common-root
- Общие настройки минимальной центоси до более-менее вменяемой, куда будут заброшены ваши публичные ключи для беспарольного входа. Да, мы потрогаем ваш приватный ~/.ssh/id_rsa, но честно-честно, никуда его не унесем, только вытащим публичный ключ чтобы облегчить авторизацию на вики-серверах.
- roles/parsoid
- Развертывание nodejs-сервиса парсинга — если не нужно WYSIWYG-редактирование, можно исключить настройками в group_vars/all.
- roles/wiki-root-common
- Настройка PHP-NGINX-PHP-FPM стека, общего, если вы заходите держать несколько вик.
- roles/intrawiki-root
- Настройка конкретной вики (если нужно несколько вик, можно копировать-настроить этот каталог). Основные тонкие настройки там:
- В roles/intrawiki-root/tasks/main.yml найдете список расширений и откуда их брать. На простые бинарные настройки это не высадить, особенно если вы будете форкать расширения, или наоборот, фиксировать версии. По смыслу там все понятно. Откуда брать, куда ставить, какая версия. Если расширение потребует дополнительных библиотек через composer — они поставятся. В общем блоке LocalSettings сделано так, что автоматически подключаются все установленные расширения. Т.е. если вам что-то ненужно — просто удалите и не выкачивайте расширение. Если нужно что-то еще — просто добавьте
- include: templates/install_ext.yml item={{ item }} with_items: - {dest: '', url: '{{prefix_github}}mediawiki4intranet/core', version: mediawiki4intranet-core-1.26} - {dest: 'config', url: '{{prefix_github}}mediawiki4intranet/configs', version: master} - {dest: 'vendor', url: '{{prefix_wikimedia}}vendor', version: REL1_26} - {dest: 'extensions/googleAnalytics', url: '{{prefix_wikimedia}}extensions/googleAnalytics', version: master} - {dest: 'extensions/MediaFunctions', url: '{{prefix_wikimedia}}extensions/MediaFunctions', version: master} … - {dest: 'skins/cleanmonobook', url: '{{prefix_github}}mediawiki4intranet/skins-cleanmonobook', version: master} - {dest: 'skins/vector', url: '{{prefix_github}}mediawiki4intranet/Vector', version: mw4i-1.26} - {dest: 'skins/monobook', url: '{{prefix_github}}mediawiki4intranet/skins-monobook', version: mw4i-1.26}
- В roles/intrawiki-root/templates/LocalSettings.php тонкие настройки вашей вики.
Ну вроде и все — проект этот будет поддерживаться в актуальном состоянии, будем добавлять новые роли и возможности, стараясь при этом чтобы все это не стало монструозным.
«Присоединяйтесь, барон!» © — ставьте, пользуйтесь, пишите новые интересные расширения.
- ↑ Вот короткая, почти не устаревшая лекция про архитектуру MediaWiki
- ↑ Самый последний писк моды это «ехал докер через докер»™, но сейчас мы рассмотрим олдскульный подход, с виртуальными машинами и гибким обновлением через ansible. Докер тоже будет. Но потом.
- ↑ И не надо к нам больше обращаться с просьбой развернуть все это за две тыщи рублей на шаредхостинге!
- ↑ Хоть за пару баксов в год
- ↑ Который, кстати, появился слишком поздно, после Repo.php — иначе бы, конечно, не стали бы так «велосипедить»
- ↑ «Centos 7» — наиболее популярный в «энтерпрайзе» серверный линукс, какой бы дистрибутив вы не любили, и как бы вы не относились к редхатоподобных дистрам
- ↑ Если у вас Windows, попробуйте путь с cygwinом-babunом
- ↑ Лично я люблю Komodo IDE
- ↑ Ожидается VPSка с свежеустановленной Centos 7 — все хостеры VPS предоставляют такой шаблон
Как получить линкуемые GPS-координаты с андроида? Гадание триграммами
Отпуск. Леса под Казанью. Родительская дача.
Попытался наконец выяснить ее GPS/URL-координаты, чтобы можно было как-то вменяемо сослаться.
Одурел от непоняток, как это сделать. Есть андроидные смартфоны, ноуты, полудохлый инет. Казалось бы, в чем проблема?
На ноутах полно десктопных карт, но нет GPS. На смартфонах есть GPS, он нормально ловится, но нет нормального способа увидеть координаты, или как-то перебросить их до десктопа.
Яндекс.Карты — те чуваки, которые учат всех делать синхронизацию между платформами — не имеют ни малейшего способа синхронизации десктопных и мобильных карт. В десктопных Яндекс.Картах есть «карты», в мобильных Яндекс.Картах есть «закладки» и эти миры не пересекаются. Крутые гики понятное дело, с рутованными телефонами и ADB-комплектом, вытаскивают нужные SQLLite файл с базой Яндекс.Карт, и простым SQL-запросом вытаскивают нужное. Но третье тысячелетие на дворе, это какой-то бред.
Google-карты… эти просто вынесли мне мозг. С одной стороны, они предлагают десяток способор расшарить координаты. Почтой-гмейлом-фейсбуком-вотсапом-дропбоксом-WiFi-BlueTooth-тушкой-чучелом… И везде туда они засовывают не GPS-координаты, не... туда засовывают сокращенных goo.gl урл с ... координатой ближайшего крупного обьекта из базы, к которому решили привязаться… или они путают футы-с метрами или широту с долготой… или втыкают какую-то первоапрельскую рандомизацию... честно говоря, я не знаю, в чем у них ошибка, скорее всего в ДНК, вот три урла … полученные гуглкартами в радиусе десяти метров, и все они ведут к одной точке в полусотне километров от нужной.
Нет слов, ни цензурных, ни других.
Гештальт надо было закрыть любой ценой. Поставил[1] приложение What3Words (дискретизация GPS-координат до квадратов 3×3м и кодирование тремя цензурными словами)
Стал получать уже хоть что-то, напоминающее координаты, которые можно запомнить и увидеть на десктопе.
Но там другая проблема — осцилляция GPS-координат. C точностью 3x3 метра можно привязывать только вручную, соотнося координаты с нужным зданием на фотосьемке. А если на спутниковой сьемке сплошной ковер леса, телефон с пойманным GPSом стоит на подоконнике,… то я раз за разом получаю гадание новыми триграммами на «Книге Перемен», которых я вручную перевожу уже на десктопе в GPS-координаты:
- http://w3w.co/поить.котик.стаж 55.651938, 49.025636
- http://w3w.co/изюм.корка.корка 55.651938, 49.025731
- http://w3w.co/хвойный.серия.бродить 55.652126, 49.025588
- http://w3w.co/ловля.натура.клоп 55.651965, 49.025636
- http://w3w.co/галька.проект.пешка 55.652019, 49.025636
- http://w3w.co/диктант.ремесло.чеканить 55.651857, 49.025588
Наверно по уму надо было собрать их полсотни, заполнить таблицы, построить хитрое среднее… но мне уже пофиг. Для грубых целей мне сойдет «изюм.корка-корка», и может быть кто-то подскажет правильное решение этой задачи.
- ↑ Там тоже не просто, ставилось только на 4 андроид, пришлось взять телефон жены
2014-10-31 Копипаст документов (и даже картинок) из Word'а
Раньше, когда в Wiki по умолчанию был включён wikEd, многие его использовали исключительно для вставки форматированных текстов из Word’а / OpenOffice / LibreOffice / просто из браузера.
Однако уже с прошлого года wikEd по умолчанию выключен (Блог:TechTools/2013-07-11 А не выключить бы нам wikEd?), и функцию копирования текстов я уже тоже довольно давно переместил на «нормальную» панель редактирования (WikiEditor). Вот эта кнопка:
При её нажатии появляется «окно», в которое нужно путём Ctrl-V скопировать текст из Word/LibreOffice, после чего нажать «вставить», и Wiki (ну, не сама MediaWiki, а конкретно кусок кода, взятый из wikEd’а), как умеет, сконвертирует текст в свою разметку и вставит в поле редактирования страницы.
А теперь о новой фиче, добавленной недавно: в данную функцию я добавил поддержку автоматической загрузки изображений!
Просьбы реализовать такое поступали довольно давно, но раньше я думал, что это невозможно, так как при вставке из буфера обмена в contenteditable элемент в браузере изображения теряются. Однако, недавно я обнаружил, что если копировать текст из LibreOffice (не OpenOffice и не Word!) в Firefox, изображения сохраняются! В виде <img src="data:base64,..." />, то есть, содержимое вставляется прямо в копируемый текст в виде base64-кодированной строки. А раз изображения там есть, значит, и поддержку запилить можно :)
Так что теперь, если вы вставите в появившееся окно из LibreOffice текст, содержащий картинки, и нажмёте «вставить», справа появится их список с предложенными названиями:
Здесь нужно выбрать желаемые названия и нажать «Загрузить». Изображения загрузятся и заменятся в тексте на соответствующий вики-код, и снова появится кнопка «Вставить», после нажатия которой текст уже вставится в статью. Либо, если вы не хотите загружать какие-то картинки — нажмите «Отменить», удалите их из текста прямо в окне, в которое делали копипаст, и нажмите «Вставить» снова.
Загружаются изображения в том же виде, в котором их передаёт LibreOffice, без снижения качества, а в статью вставляются в приблизительно том размере, до которого были отмасштабированы в документе.
Вот такая у нас теперь есть интересная фича :)
2013-11-13 Автокомплит в вики :-)
Как мы все прекрасно понимаем, сила MediaWiki и вики-системы в целом обычно основана на редактировании некой текстовой разметки.
А где текст — там обычно и автодополнение :-) но раньше я был уверен, что получить положение курсора в голом браузерном поле ввода невозможно, поэтому автокомплита в вики не было :-(. Однако недавно пришло осознание, что через определённый костыль это всё-таки реализуется! И подобный костыль даже используется github’ом.
Так что встречайте! На все наши вики установлено запиленное в последнее время расширение, подсказывающее ссылки, шаблоны, функции парсера и даже секции статей! :-)
Я подозреваю, что особенно оценят эту фичу программисты, привыкшие к IDE. ;-)
Ссылки, файлы, категории | Секции статей | Шаблоны | Функции парсера |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Также оно понимает относительные ссылки и включения шаблонов ([[../Страница с того же уровня]], [[/Подстраница]]).
Сначала было хотел сразу сделать ещё и подсказку параметров функций парсера и шаблонов, но для этого сначала надо понять, откуда, собственно, брать справочную информацию (особенно для шаблонов — видимо, её надо как-то прописывать в них самих), так что решил выкатить побыстрее.
Плюс ещё нужно подсказывать функции парсера, которые пишутся без #, то есть выглядят примерно так же, как шаблоны. Тут минус в том, что оно будет с шаблонами, собственно, перемешиваться.
P.S.Это расширение LinkAutocomplete
ProfsoUX-2013
Кратко — видео c конференции ProfsoUX падает сюда. Я их еще буду улучшать (в некоторых возьму другой звук и т.п.), но в целом уже смотримо.
Ну и если что неславабогу — пишите письма, комменты сюда, или к конкретному видео на vimeo.
многобукфмоде=он
На прошлой неделе был очередной съемочно-конференционный выезд — сьемки конференции юзабилистов ProfsoUX.
В целом, я максимально сократил свою конференционную активность, ибо конференций стало адово много, многие превращаются просто в регулярные тусовки, что мало кто смотрит собственно доклады в записи.
Впрочем, видеозапись и трансляция тоже переходит в околообязательный статус, и в большинстве случаев них уже находятся желающие снимать, особенно, если конференция коммерческая, и выделяют бюджет на профессионалов.
А самое главное — у меня появилась реальная жизньжесткая работа, не до тусовок.
Но тут я обещал еще с зимы приехать, поснимать-потранслировать, ну и что-нибудь рассказать.
Насчет рассказа - сделал первый подход к нетривиальной теме, дико ортогональной всем текущим юзабилити темам, ортогональной настолько, что многие считали, что я приехал потроллить.
На самом деле, я был совершенно серьезен, и даже пытался отрефлексировать эту тему для себя — почему двухпанельные файловые менеджеры, такие как Far, Midnight Commander, до сих пор сверхуспешны в среде Труѣ IT-шников, хотя интерфейс не менялся уже 26 лет.
И обнаружил, что хоть может и случайно, в их интерфейсах заложены идеи, которые либо уже были глобально успешны, либо даже наоборот, входят в тренды в последнее время.
Все эти три десятилетия время, их интерфейс противостоял с стандартной проклятой метафоре «Замусоренного Письменного Стола», породившей почти все интерфейсы Desktop Environment, где любые действия по наведению порядка такие же сложные и энергозатратные, как и в реальном мире - копание в наваленных друг на друга окнах, выцеливание мелких объектов (иконок, бордеров), тяжелые drugs-and-drops мышью с зажатой клавишей…, и перегрузка метафорами «реального мира» (бумажные папки, которых уже мало кто видел, не говоря уж о «дискетах», как метафорах сохранения, и сонме других странных иконок, создающих информационно-баннерный шум).
Вместо этого, они предлагали
- прекрасный Clear & Simple конструктивный минимализм в духе Дитера Рамса, все выровнено по сеткам, и очевидно как стеллажи из Икеи.
- непересекающийся тайлинг информационных зон, must в любом профессиональном интерфейсе, собственно это и есть основной признак любой IDE.
- единую логичную модель «операций над списками», будь то списки файлов, процессов, или строк внутри файла — все можно было выбрать, просмотреть, копировать, и т.п.
- на все это распространялась единая клавиатурная модель, ... требует запоминания, но все консистентно.
- да, это требовало некоторого обучения, но зато давало огромный буст потом → «лучше день потерять, потом за час долететь».
- Синергия:
- Двух конфликтующих моделей UI:
- Объект → Действие (Существительное → Глагол, контекстные операции)
- Действие → Объекты (Команды и Аргументы, command-line)
- Клавиатуры и экономного использования мыши (клики вместо drags). И да, несмотря на все успехи альтернативных интерфейсов, для высокоэффективного ввода и быстрой реакции, пока не появятся нейрошунты, альтернативе стандартной клавиатуре — нет.
- Двух конфликтующих моделей UI:
- Поддержание контекста — всегда видны основные артефакты (файлы), над которыми выполняются операции, везде есть история: перемещения по каталогам, история выполнения команд.
- Расширяемость — можно адаптировать под себя, масштабировать функциональность - дополнительные плагины, пользовательские меню.
- Важнейшее свойство UI — стабильность. Рождались и умирали операционные системы, но везде можно было найти синебелый двухпанельник. Можно было учить возможности постепенно, открывая для себя все новые клавиатурные сочетания, но такого, что все, к чему привык и выучил ваш костный мозг (куда опускаются клавиатурные навыки), вдруг отменили при переходе к новой версии (такое бывало при смене версий ворда, например) — нет.
- Была куча попыток улучшений с отходом от классического канона, включающих и текстовый минимализм, и командную строку, — рождена куча альтернативных двухпанельников, но они не стали популярными (ну разве что кроме Total Commander), ибо то отпиливали командную строку, то удобство клавиатурного ввода, то обвешивали графическими свистоперделками.
И собственно многое из этого уже становится современными трендами — и если программерские IDE это использовали давно, а различные мультиплексоры терминалов (tmux) и window-менеджеры с автотайлингом (например I3) можно списать на «гиков» (хотя гики — это как раз и есть те люди, у которых высокая потребность эффективной работы), но даже и Win8 уходит от СвалкиНаПисьменномСтоле, хотя местами куда-то непонятно куда (гонка за сворой зайцев, планшетность, тачскриновость и классические мышь клавиатура в одном флаконе, совмещение всего этого рискованно).
К сожалению, современный «попсовый» тренд ориентирующий весь UI на «не заставляйте меня думать», приводит к тому, что интерфейсы становятся тупыми, нерасширяемыми и очень энергоемкими для очень часто выполняемых задач. И да, речь шла не о файловых менеджерах конкретно, а о переносе всего полезного из них в сильнонагруженные информационные интерфейсы, требующие активной работы, будь то учетная система или CMS.
Ведь если заказывается интерфейс для какого-нибудь трейдера, то рано или поздно наверно его смогут прокачать по производительности (хотя не факт, зависит от влияния конечного пользователя, а в заказной разработке часто конечный пользователь-оператор не имеет никакого голоса, а стейкхолдер-начальник будет ориентироваться на внешнюю красивость), то массовые сервисы, увы, так и остаются неудобными.
Черт с файлами — все эти видео-, фото- хостинги, CMSы - замучаешься сортировать и наводить порядок, переносить контент между папками и категориями, ... никто уже даже не задумывается об эффективности, ибо если у проектировщика нет опыта использования эффективных классицирирующих оболочек (таких как эти двухпанельники), то эти возможности по прокачке производительности просто окажутся в его слепой зоне.
Все это я пытался, достаточно сумбурно рассказать за 15 минут, используя живую демонстрацию, и собственно презентацией был проект, который я показывал из с Midnight Commander (рядом был виндовый ноут с FAR, и тем же проектом, планировал переключатся по ходу, но не пришлось). Конечно, не все было ОК, это только самый базовый подход к предмету и набрасывать его я еще продолжал на верхней полке поезда, и конечно, результат был далек от оптимального.
Выглядело это примерно так:
[1], [2], ну и вообще фото с конференции в фейсбуке и вконтакте.
А восприняли меня как-то так:
Да, это кстати отличная идея — feedback-комиксы по докладам на отдельной стене:
Вообще, это меня уже не в первый раз рисуют на конфе, вот лет шесть назад я выглядел сильно получше:
В этот раз я не только снимал, но и транслировал, причем в отличие от 99.999% трансляций делал раздельную трансляцию экрана и докладчика, все в общем работало, за исключением момента, что одно из окон трансляции надо было вручную переключать на второй канал, а те, кто об этом не догадались, несмотря на понятную картинку,
видели два одинаковых окна и наложение двух одинаковых звуковых дорожек.
Да, я привозил комплекты камера-линуксноут-с сьемным диском, все надежно связано проволкой, т.е. можно было транслировать даже два зала, но в другом шли интерактивные мастер-классы, смысла не было — в этом интересно участвовать, а не смотреть.
Впрочем, онлайн зрителей было немного, где-то полсотни. И это в общем понятно, смотреть доклад гораздо комфортней в записи, единственный смысл смотреть трансляцию — это интерактив. Либо с докладчиком, — т.е. возможность задать вопрос, или как-то прокомментировать-поправить, либо, с аудиторией, на худой конец, с отдельной аудиторией зрителей трансляции.
Но тут возникают разные морально-этические проблемы. Если завести немодерируемый анонимный чятег параллельно с окном трансляции, то, по крайней мере в России, он тут же превратится в место жесткого неказуемого стебалова. Lulz это конечно хорошо, но за чей счет? Совершенно нормально критиковать и даже стебать, если ты неанонимен, нормально быть и анонимным критиком, но тогда плиз, без публикации. Ведь каково выступать докладчикам, если они будут знать, что все потенциальные зрители параллельно докладу видят мастурбацию беснующихся анонимов? Лично я, кстати, был в подобной ситуации, и совершенно нет желания оказаться в ней вновь. Выглядело это примерно так (да, на мне та самая, вассермановская жилетка[1]):
Поэтому сделали некоторый компромисс - я попробовал выводить проектором на боковую стену рилтайм поток твиттов по хештегу конференции, в надежде, что может будут вопросы докладчикам, и ответы на них.
В общем, не особо получилось. Надо подумать, как это сделать максимально правильно и сделать удобное, не сбивающее докладчика, конструктивное взаимодействие с зрителями трансляции, и даже с сидящей в зале аудиторией.
Про доклады особо пока ничего сказать не могу — я их снимал, но не смотрел, даже более того, в зале было жарковато, и я начал регулярно его покидать, с целью проветрится и пообщаться.
Так что доклады я отсмотрю в своем монтаже позже и может напишу краткое ревью. Или не напишу.
Общался в основном с маководами, но нашел даже еще одного (кроме меня) линуксоида.
Показывал линукс-десктоп-оболочки, удивил многих, что они уже далеко не деланные пальцем, местами макообразны и вполне эргономичны. Особенно, если их допиливают профессиональные дизайнеры и юзабилисты, как у нас. Показывал, как мы делаем юзабилити-тестирование линуксов в нашей компании.
Ну и как обычно, корпоративный инсайд, где хорошо работать (там где нас нет), на чем бы сделать ярдовую историю (хотябы в рублях, или копейках), какие из понтовых компаний, не вылезающих с «рунетологии» скоро дадут дуба.
Впрочем, многие уже ездят на конференции только пообщатся, оставляя доклады как развлечение для нубов.
Ну и классический раздел моих отчетов о конференциях — жалобы на Гомеостатическое Мироздание™, отчеты о поломках и потерях.
Не был исключением и этот выезд.
- Для хорошего звука я разместил в удачном месте диктофон Zoom H4[2]. Но он нифига не записал, неясно почему, продолжаю разбираться.
- У фотоаппарата, который дублировал запись экрана, сдох блок питания, соответственно, записалось только несколько часов. К счастью, запись экрана (тоже двойная) не зафейлилась.
- У дополнительного проектора, который я привез с собой, и который использовался для показа твиттер-ленты на стене - вырвалось винтовое крепление к штативу.
- Билеты обратно брал на ходу в машине, после конфы, и, сюрпрайз — нормальные купэ кончились. Пришлось разорятся на люкс.
- Самое страшное — у 60 килограммовой сумки на колесиках, в котором везлась вся эта хардварь, сломалось колесо[3] (ось). Всю эту хрень пришлось тащить на буквально на горбу, сначала в камеру хранения, что бы смотаться на афтерпати за бесплатной кружкой пива, затем обратно... где я обнаружил, что телефон сел, а я не помню номер поезда и вагона, и из последних электросил просмотрев фотку в вырубающемся смартфоне, твердя "19.9.6", c огромной дурой на хребте бежал к девятому вагону, чтобы обнаружить что его нет... всех направили в восьмой... там нет электронной регистрации и ничего не знаю... страх-паника-ноутбук-йота, да, я перепутал местами вагон и место.
И да, эти роликовые сумки на колесиках - их можно где-нибудь надежно и недорого отремонтировать, или уже все?
- ↑ Я постоянно экспериментирую с функциональной одеждой, средствами хранения и переноски. И да — эта жилетка, принципиально неудобна, запомнить что и где лежит способен только ее создатель. Мой выбор теперь — абсолютное дополнение. Прозрачные пакеты на молнии внутри кресла-рюкзака - вот это оптимально и функционально
- ↑ Да, им можно было бы снимать звук с микрофона, но я недолюбливаю этот метод, ибо теряются вопросы и реплики зала, и вообще все, что сказано вне микрофона
- ↑ Удивительная повторяемость — два года назад у меня в Питере, при отьезде с ADD-2011 тоже сломалось колесо на сумке-тележке, и пришлось задержаться на день, чтобы его починить.
2013-05-21 Новые фичи в ВикиПрезентациях
Есть у нас такое расширение MediaWiki — S5SlideShow. Нами написанное, на S5 основанное, и позволяющее легко, быстро и удобно генерировать презентации, просматриваемые прямо в браузере, из вики-статей.
Главные преимущества S5 в том, что:
- Можно использовать весь спектр возможностей Wiki — всякие картинки/SVG, графы, подсветку кода и так далее, вплоть до видеороликов или MindMap’ов.
- Можно писать дуальную «статью-презентацию», перемешивая слайды и НЕ-слайды.
В итоге такие статьи, в отличие от голых PPT’шек, валяющихся непонятно где на сетевых дисках и/или на всяких левых slideshare, содержат куда больше смысла и остаются полезными и через год, и через два после показа.
Так вот, теперь кроме обычного просмотра появилась ещё и возможность печати и/или PDF-экспорта (через печать в PDF-файл) любой презентации! PDF-принтер в Linux’е есть в наличии всегда, а под виндами ставится в куче реинкарнаций — например, через Ghostscript.
Инструкция по печати есть здесь: Печать и PDF-экспорт.
Делается в Firefox (можно также Chrome) с помощью вот этой кнопки, которую можно увидеть, подведя курсор мыши к правому нижнему углу страницы в режиме презентации:
Статья реплицируется в Wiki4IntraNet.
ROSS-2013. Конференция «Russian Open Source Summit 2013»
Внезапно (вечером перед) был призван снимать «Russian Open Source Summit 2013», многотрековую конференцию в «бизнес-отеле», но некоммерческую, с бесплатным посещением[1]
Согласился («если не я, то кот?»), выдвинулся без подготовки, вспешке набив колесную сумку разнотипными девайсами. Увы, т.к. без подготовки, то страховался от разного, тащил даже пару комплексов перехвата экрана (фреймграббер+сплиттер+ноут), тащил свои ноуты, — увы, это не пригодилось. А камер и штативов пришлось брать в обрез — только по одной, для докладчика, без записи зала, без дублирования...
Не удалось поставить свои подготовленные ноутбуки, пришлось биться с организаторами, объясняя необходимость записи скринкастов, чтобы не получилась обычная треш-запись на камеру экрана с человеком (слайды будут нечитаемыми, а человек будет маленьким черным силуэтом). А конференция, не гуманитарно-менеджерская, где слайды состоят из котиков с лозунгами, и могут быть смело опущены, но часто набиты архитектурными схемами, демонстрациями софтин, т.е. читаемости дико важна. См. картинку — «А что, разве не разборчиво?», удивленно вопрошал докладчик.
Разумеется, случились накладки. То докладчик внезапно, не предупредив, выступил с своего ноутбука без скринкаста, то сменили разрешение и на скринкасте все обрезалось (теоретически, моя софтина должна была такое учитывать, но почему-то не вышло, буду разбираться). Это означает, что с некоторыми докладами мне придется сильно возится вручную. Ну и да, добровольцев-операторов у меня тоже не было, я метался между всеми залами, стараясь, чтобы докладчик хотя бы попадал в кадр[2]. Получалось тоже не всегда, и утомился сильно (пришлось даже пропустить обед). Наверно больше так делать не буду — запись конференции только при договоренности заранее, с контролем процесса, с содействием организаторов, с волонтерами, следящими за процессом.
Из обидных потерь — пропали мои спортивно-хипстерские очки (и штука недешевая, и редкая — тащил из штатов).
Организаторы! Если вы прихватили из главного зала около ноута шапку с странным очками с черной оправой и резинками — плиз, верните! Снег сошел, а как мне ездить на велосипеде/роликах/самокате… без этих очков.
Хотя кого я обманываю, мне уже совсем давно не до спорта.
В любом случае, все монтируется, и постепенно публикуется в отдельный альбом, и хоть художественного качества будет немного, доклады должны получится информационно-смотримыми, ну и я буду их итерационно улучшать, по мере проверки.
Стоит ли смотреть?
Ведь до конфы, в блогосфере был замечен некий отрицательный хай. dolboeb'у не понравились в анонсе чиновники с странной репутацией, многие делали стойку на то, что выступает боец из Microsoft, причем не простой, а лепший друг самого Карманова.
Т.к. я бегал, и практически не смотрел доклады, обзор, что смотреть, а что нет пока дать не готов, но:
- Чиновники были скорее «свадебными генералами», прочитали очень короткие приветственные спичи, и конечно, народ собрался не ради них. Что касается репутации, ну вот других людей из правительства, поддерживающих опен-сорс, вероятно было нереально найти, вы знаете кандидатуры получше?
- Среди участников, встретил много знакомых из опенсорс тусовки, кого можно увидеть и на альтовых конференциях, и в киеве.
- Были презентованы очень интересные open-source решения (меня лично интересовали инструменты коллаборации), были люди, презентующие выстраданный опыт достойной работы, например, добротной автоматизации и учета малого бизнеса, так, чтобы качество не хуже жирных вендорских решений, и при этом почти даром.
- А что касается микрософта — ну так хороший повод поспорить, на худой конец потроллить в реале, а не в интернетах.
- Все тоже и к видеопросмотру — если что-то в докладе не понравится — можно не просто написать хейтерский отзыв в своем блоге («ненужно», «ониплатятпоттерингуисломалиюдев», … ) но и добавить ссылку на свой отзыв в коммент к видео на vimeo.
- Feedback типа «неславабогу» — тоже очень приветствуется. Может смогу починить. А то если никто не жалуется, то либо нет проблем, либо действительно «ненужно».
Я сам, когда доделаю, постараюсь посмотреть и сам, и набросать более-менее подробный отчет (в духе Блог:Стас Фомин/Конференция OSDN-UA-2012), наверно будет прямо тут.
OSEDUCONF. Конференция «СПО в ВУЗах»
В прошлом году я уже ездил на эту конференцию, выступил там, и даже думал написать подробный отчет-review, но сделал стратегическую ошибку — решил подождать публикации видеозаписей (особенно своего доклада), ибо вроде как наблюдал весьма тщательный подход к записи, с использованием фреймграббера и нескольких камер, должно было получится неплохо.
Увы, не дождался. Ибо статус обработки наглядным образом демонстрирует один из основных bottneckoв процесса — видеомонтаж нескольких потоков практически во всех пакетах видеомонтажа штука дико геморройная.
И в результате, без публикации и внешней аудитории[1], конференция остается в местечковом статусе «тусовки с чаем в аудитории для постсоветской интеллигенции», что как бы грустно.
Решил съездить, рассказать как решить эту проблему с помощью SeminarAssembler и заодно, поснимать/опубликовать, дать, так сказать, возможность миру взглянуть на проблемы и опенсорса, и высшего образования.
Так, тем, кто не любит читать много букв → записи тут. Возможно я их еще поулучшаю, заголовки-описания тоже будут, и вообще, скорее всего скоро заведу сайтик поддержки снятых конференций, по образцу http://lib.custis.ru/it-talks, но в любом случае, смотреть можно уже здесь и сейчас.
Кстати, если действительно будете смотреть, и комментировать, то можно ссылаться на конкретные моменты/реплики, типа так: http://vimeo.com/58564525?t=23m43s Для религиозных ненавистников флеша, используйте Google Chrome — он показывает и HTML5-видео. Для совсем упертых ненавистников централизации, флеша, и проприетарных форматов и кодеков, опубликованы файлы в православном WEBM-формате, на http://ftp.linux.kiev.ua/pub/conference/peers/pereslavl/2013/video/
Для желающих абсолютной свободы и бесцензурности → вот многопоточные MKV-файлы, со всеми потоками, ни байта не вырезано, можно стримить с любого места (только выберите аудиодорожку $acam)
- http://ftp.linux.kiev.ua/pub/conference/peers/pereslavl/2013/video/oseduconf-1.uncut.mkv0:50:00
- http://ftp.linux.kiev.ua/pub/conference/peers/pereslavl/2013/video/oseduconf-2.uncut.mkv4:23:34
Прилагаю их для демонстрации MKV-записей, не требующих верстки. Тут правда требуется установленный плеер VLC, ассоциация M3U-файлов с ним. Подробней о технологии, см. Блог:Стас Фомин/Matroska._Матрешка._Видеоконсерв._Самый_простой_и_эффективный.
Очень желательны отзывы — даже критические отзывы лучше чем ничего. Пишите их куда угодно — в свои блоги, твиттеры и т.п., ссылки можно сбрасывать комментами к видео на vimeo. Ну или комментируйте прямо там.
И если вдруг видите косяки → сообщите, плиз.
И да, Господин Студент, снимавший ездящего робота на фотоаппарат (снимали робота и транслировали крупный план на дополнительный проектор, чтобы было его видно) и обещавший прислать запись, плиз, свяжитесь со мной, в видеодоклада нехватает этой вашей записи!
Skype. Минус фича и он стал неюзабелен для групп
В пятом скайпе выпилили фичу «Ungrouped Contacts» и тем самым сделали работу с группами.
Почему? Нарушена базовая аксиома классификации — полнота классификации/категоризации, чтобы каждое действие по классификации неотклассифицированного элемента уменьшала базу «неопределенных» элементов, и всегда можно было бороться с списком «Incomings/Неопределенные».
Представьте вашу почту, где входящие письма нельзя выделить ни папкой, ни по дате? Вот и я охренел. В момент добавления новых контактов, их кстати, нельзя классифицировать, (и даже переименовать!) а потом приходится их искать в общем пруду, причем бесполезно запоминать ники, оно показывает имена... «Виталий» — какой из 15 виталиев?
В результате, я одурев, пытаюсь сбить несколько групп, для которых я провожу удаленные лекции и совещания, для чего, мне приходится делать ПОЛНЫЙ ПЕРЕБОР всего списка контактов «Кто все эти люди?». В результате, мне пришлось дедлайн по регистрации на лекции делать жестким, чтобы один раз разгрести эти авгиевы конюшни, и больше не трогать.
До кучи, от версии к версии отваливается куча другого ценного функционала (вот отвалилась поддержка miniDV-камер, и пофиг — баг закрыт, ибо репортер купил себе обычную вебкамеру).
Плюс сейчас, после M$-ции, появится реклама, и прочие радости… вероятно, пришло очередное время для смены IM, по крайней мере для лекций.
Ну разумется, у меня есть лайфхак в виде portable Skype 4.2, где все это еще живо, но направление мне не нравится. Вероятно надо переходить на Google Hangout, а для чисто лекций — на принципиально ассиметричный формат, когда звук идет от одного участника в одну сторону, а комментарии и замечания асинхронно и текстом в другую. Экспериментирую с yatv.ru (лаг 3-5 секунд). Возможно надо попробовать Google Hangout.
Update: F*! Толи из-за взаимодействия Skype5 ←→ Skype4, то ли из-за внутренних глюков, накрылась вся моя классификация по группам! Полностью. Все в одной куче. Только Skype/Online/Facebook.
В общем, видимо,
- сначала начну геноцид, оставлю в скайпе только 10% тех, с кем реально общался в последний месяц.
- начну активно искать альтернативу (hangout?)
Видеозаписи с SECR, WUD, PingwinFest. Жалобы на невезение
Что-то мне неоднократно говорят, что я склонен писать нечитаемые многобукв, и даже заведение твиттера мне не помогло, поэтому очень постараюсь быть кратким, ну или хотя бы лаконичным на первом уровне.
Кратко: на самом деле, мои записи с конференций SECR, WUD-2012, PinguinFest уже давно опубликованы, обычно почти все публиковалось в течении недели-двух после.
Но во всех случаях были некоторые issues, которых я пытался чинить после, плюс у меня сложный жизненный период, все дедлайнится наперегонки, неразгребаемые тыщи писем в инбоксах, в общем, мораторий блоггинг даже в твиттер-формате вполне объясним.
Но сейчас начал разгребаться, и вот, нашел время и место пожаловаться.
Далее не читать, если не любите нытье, самооправдание и т.п.
SECR-2012 — Скоро, 1го и 2го ноября.
Итак, на носу очередной SECR, он же «CEE-SECR 2012», оно же «Central & Eastern European Software Engineering Conference in Russia».
Конечно, сейчас никого не удивить очередной «Межгалактической» айтишной конференцией, которые идут практически нонстоп. Наверно, если брать РФ, то осенью каждую неделю где-то происходит очередная IT-конфа.
Но все же, это одна из старейших московских конференций, я ходил на нее ежегодно с 2005 года, с 2007 выступал[1], а с 2011 меня пригласили в Программный Комитет[2].
У этой конференции было много странных традиций, наверно оставшихся от времени, когда она была практически одна, на пустом IT—поле → менеджмент, программирование, QA, юзабилити, аналитика, все в одном флаконе, плюс скажем так, большая часть околонаучных докладов, разного уровня, от курсовых студентов ВШЭ, где раньше SECR и проходил, до довольно немейнстримовых, но при этом нестыдных вещей. Возможно от этой «академичности» до сих пор отсталось много рудиментов в организации — сложный процесс отбора докладов, с перестраховочными дедлайнами, «двойными слепым рецензированием» статей, которые требовались в качестве заявок на доклады… в общем, многое мне там не очень, о чем я уже писал Блог:Стас Фомин/2011-09-03 SECR-2011 — доклады отобраны[3], и даже пытался «менять ландшафт на ходу» (Блог:Стас Фомин/SECR-2011:_сводки_с_полей). Даже думал написать, по аналогии с Блог:Стас Фомин/Конференции — памятка докладчику, мануал по эффективной организации конференций.
Но теперь повзрослел, и не хочу — пусть расцветает сто цветов, пусть будут разные формы/форки, ну а дело зрителя — решать. Аудитория ведь очень неоднородна — есть небольшой и очень пресыщенный слой «информационно продвинутых», которые много читают-смотрят-посещают кучу конф и хотят «многого и странного», а есть, скажем так, те, кто раз в один-два-три-… года, им и так ОК, а лишняя новизна и авангард будет только мешать.
Что касается SECRа → он меняется, место проведение модное, Digital October, бюджет огромный[4], ну а что касается программы → смотрите сами. В качестве информационного развлечения, могу предложить просмотр своих «слепых» видеоотзывов[5] по тем заявкам, что бездушная ревью-машина назначила мне. Многие из этих заявок прошли, но что более важно: многие — нет.
Конференция OSDN-UA-2012
Как-то задолго до конференции с длинным и плохосокращаемым названием «Всеукраинская конференция разработчиков и пользователей свободных программ» пообещал ее организатору, Мише Шигорину, приехать и записать. И очень хорошо, что заранее — ибо запланировал, и несмотря на разные обстоятельства, долг победил.
Впрочем, формат конференции был ИМХО, наиболее удобный — бесплатно, без понтов, однодневная (не надо гостиниц, ночной поезд туда-сюда), и даже удобная для сьемки одним человеком — ибо один трек.
Отчет с ревью докладов, описание бытовухи и прочих проблем еще последует, а пока, для заинтересованных, вот сюда собираются и падают драфты видео: Category:OSDN-UA-2012
Ну и соответственно — если видите косяки, пишите мне.
Отчет-ревью ниже.
2012-09-26 WhaleRider-2012
Сходил, выступил с докладом ««Страховка от автобуса» или пересадка сознания при групповой нейрохирургии» на конференции WhaleRider-2012.
Ситуация у меня сейчас сложная, уговорили выступать за несколько дней до начала конфы, начал готовился за несколько часов до выступления.
Разумеется, без накладок не обошлось, выступил несколько скомкано, не показал 30% мыслей и изобретений, включая сервис демографической аналитики внутри компании. Но в целом, думаю, немудренные мысли, о пользе видеотехнологий, оптимизированных через SeminarAssembler, донесены — проблема как обычно одна, нетривиальных новых мыслей немного, но эффект от предыдущих выступлений практически строго нулевой, и приходится повторяться. Ну и есть ощущение, что интернет-разработка — это небольшие компании, короткие проекты (была реплика из зала о «длительном» 4хлетнем проекте — у корпоративных инфосистем это так, начальный этап, а живут они адски долго), более-менее мейнстрим технологии, и без длительной поддержки (кроме взлетевших в крупные сервисы стартапов), а мой опыт — скорее про корпоративщиков или долгоживущие продуктовые компании.
Из накладок — неправильно включил диктофон, хорошего звука нет. Так что есть скринкаст с посредственным звуком[1]
Если есть свободные 40 минут, можно глянуть, публике вроде понравилось [2], [3], [4], [5], [6], [7], [8] хотя тут вот фыркали на «некрасивые майндмапы». Ну посмотрите, пофыркайте тоже, что ли.
Заранее предупреждаю — будет показ сексуальных извра наслаждений, будет мой IT-стриптиз (рабочий стол там, интимная структура каталогов и т.п.).
Так что если вы ---, то ---.
HTML-код включения <iframe src="http://player.vimeo.com/video/50244854?byline=0&portrait=0" width="800" height="500" frameborder="0"></iframe>
Скачать → на странице видео на vimeo, кнопка «Download»
Как записывать скринкаст под Linux?
Итак, для Windows из доступно-надежного предлагается запись экрана через ConferenceRecorder или Screen2Log, но как записывать экран в Linux?
Причем, чтобы:
- В любом из сонма дистрибутивов
- С минимальной инсталляцией
- Без помех демонстрации (не тормозит!)
- Без рассинхронизации с истинным временем, чтобы потом, можно было синхронизовать экран с записями камер и другими скринкастами, используя, например SeminarAssembler.
- Без настроек, но чтобы было понятно, когда это записано (опять таки важно для синхронизации).
- Ну и чтобы быстро и надежно — на конференциях обычно спохватываются непосредственно за минуту до выступления докладчика, пришедшего со своим Linux-ноутбуком, и при этом ни разу не запускавшим скринкастинг.
Если для Windows идеалом является portable-программа, запускающаяся без инсталляций, развертывания в Program Files, кучи настроек… то Linux-way несколько другой. Надо использовать самые стандартные, всегда установленные (или легко устанавливающиеся утилиты), и свертывать их в работающий поток длинным one-liner-ом!
В некотором смысле, такие строчки напоминают букмарклеты — руками их набивать не очень удобно, непосвященный это не осилит, но зато их легко запустить на любом линуксе без стандартных процедур инсталляции — если забыли или не в писали в скрипт — доступ в интернет, находите эту или другую страницу, копипастите — и понеслась.
Ключевой утилитой, будет конечно творение безумного гениального Фабриса Беллара — FFmpeg.
Тут я должен был бы привести магическую строчку настроенную на самые правильные параметры, но есть нюансы.
К сожалению, из-за аспектов копирастии, сборки ffmpeg-а под разными дистрибутивами (например, под ортодоксальным GNU Debian) могут не включать различные пакующие кодеки, защищенные правами и патентами, и в частности, самый оптимальный вариант — lossless h264. Поэтому я приведу несколько версий.
Вроде достаточно прилично экран можно записать с помощью кодека FlashScreen, в flv-формат (индексы он хранит в начале файла, и этом может быть плюсом при внезапном падении записи):
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec flashsv -vb 1000 -vsync 1 -y $(date "+%F-%H-%M-%S").flv
Оно запустит с самым низким приоритетом запись полного экрана с фреймрейтом 8FPS, и с дублированием пропущенных кадров. В целом, это более чем достаточно для записи лайвкодинга, не говоря уже о слайдах. Для записи видео, конечно надо озаботится мощным компом и увеличить FPS хотя бы до 12.
Чтобы сделать из записанного yyyy-mm-dd-hh-mi-ss.flv «vanilla» AVI для последующего монтажа с помощью SeminarAssembler, достаточно запустить SeminarAssembler так:
sa b yyyy-mm-dd-hh-mi-ss.flv$lossless.avi
Ну а далее, например, Category:Курс «Видео на конвеере» или чем вы привыкли пользоваться.
Но если взлетит, лучше (качественные и готово к монтажу) было бы так:
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast_lossless -vsync 1 -y $(date "+%F-%H-%M-%S").avi
except:
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast -vsync 1 -y $(date "+%F-%H-%M-%S").avi
Конечно, можно еще включить запись аудио, но тут есть тонкость, какую аудиосистему (alsa/pulse) использовать.
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -f alsa -i hw:0,0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -vsync 1 -y $(date "+%F-%H-%M-%S").avi
Что-то не так или знаете как лучше — напишите.
2011-12-30 Lightbox в вики
UPDATE: Расширение установлено, и тут же заюзано HR'ами в Фотоотчёте по стажировке 2012.
Что такое lightbox и его аналоги, наверное, все уже знают:
Я тут ночью откопал полудохлое кривое расширение вики SlimboxThumbs, переписал его нафиг с наикривейших регэкспов на js и поставил себе — получилось неплохо (пример). При клике по миниатюре любой картинки показывает её во всплывающем окне в полном размере. Если полный размер больше, чем 80 % окна браузера, уменьшает до нужного размера. Все миниатюры на странице показываются друг за другом. В lightbox не попадают вставленные без ссылки миниатюры и полноразмерные изображения (типа, куда их ещё увеличивать?) — кстати, может быть как раз это и неправильно, а надо показывать вообще все? Получится что-то типа функционала «просмотр вообще всех иллюстраций к статье в режиме слайд-шоу».
Так вот, вопрос: кто-нибудь имеет возражения против? Поставить расширение к нам?
|
You must be logged in to vote.
Open(Libre) Office. Мог бы быть отличной платформой для коллаборации. Если бы послушали…
Еще с 2004-2005 года, я обнаружил, что OpenOffice мог быть неплохой свободной платформой для коллаботивного написания технической документации, отчетов и прочей муры. Проще, чем Wiki и веб-редактирование, с WYSIWYGом, с плюсами файлового хранения, с отлеживанием авторства каждой строчки, с коллаборацией и параллельным редактированием. При том, что в этом могли участвовать аналитики (представители заказчика), которые слабо понимали, что есть управление версиями и т.п (не говоря уж о Docbook/SGML).
Для этого надо было:
- Хранить документы в Plain HTML, c настройкой сохранения, включающая pretty printing HTML, так, что почти каждый тег был на отдельной строчке.
- Все держать под SVN, для аналитиков настроить автокоммиты и автомержи (регулярные). Сейчас для этого можно было бы использовать готовый EasySVN
Тогда:
- Вероятность конфликта по толстому документу «размазанному по строкам» была бы весьма низка, и практически все могли редактировать без пересечений.
- В случае (редкого!) конфликта, конфликтный документ со стандатными маркерами конфликта коммитился, и любой с IQ больше веса мог разрулить этот конфликт. В нормальной ITшной команде таких должно быть.
- Составные документы, сборка/отгрузка и прочее уже делалось бы отдельными скриптами, сложно быть не должно было бы.
Но! В офисе (что Open, что потом в Libre) была маленькая засада → они сохраняли время изменения в атрибуте
<META NAME="CHANGED" CONTENT="20120117;13152567">
И это было неотключаемо! В результате при одновременных правках конфликт был всегда, и вся моя идея накрывалась полностью.
Собирать свою сборку мне дико не хотелось[1], да и то, разбираться в устройстве проекта ради такого копеечного патча с очевидными профитами — я надеялся, что меня услышат.
Я сделал несколько заходов, ставя баги/RFE, сначала в Openoffice, потом когда форкнулся LibreOffice — к ним (тогда у них была самая дебильная система для feedbackа — mailing list, где все протухало и уходило в историю беспростветно). Последний раз сделал заход в 2011. 0 реакции, никто даже не читал. Закрыли не читая, с оскобительной резолюцией, что якобы тут было NEEDINFO.
Жаль. Для меня LibreOffice RIP, как платформа коллаборации, впрочем, и за последние года все мои потребности по публикации полностью покрывались MediaWiki + Google Docs (ну не считая LaTeX-фреймворка для книг/лекций и отчетов и совместных LaTeX-проектов под CVS/SVN/BZR).
- ↑ К тому же все это было до эпохи DVCSов, а держать свой реп и уговаривать взять патчи мне дико не хотелось
Ukrainian Testing Days или экспедиция на Марс
На позапрошлой неделе со мной связались организаторы Ukrainian Testing Days, на тему «поснимать». Учитывая, что это было за пару дней до конфы, вариант «бросить все и мчаться туда», не рассматривался. С другой стороны, хотелось бы дать шанс новой конференции, т.е. сделать правильную видеоконсервацию — кто знает, может взлетит[1]?
Времени было мало, действовать надо было быстро. Решено было готовить беспилотный «Полет на Марс».
Идея — отправить только оборудование, материальное (камеры, расходники,…) и нематериальное (инструкции, софт), а марсиане, аборигены, туземцы, хозяева конференции организуют сьемку, благо технология минимальнозатратная, и обычно волонтеров я обучал за пару минут.
Потом зонд должен был вернуться с отснятыми материалами обратно, в ЦУП, где, если все было бы сделано по инструкции и был произведен видеомонтаж и публикация. Да, в будущем я уверен, все смогут самостоятельно сделать все грамотную съемку и публикацию (например, используя SeminarAssembler), ну а пока это был не самый плохой вариант, «бесплатная сервисная модель», в принципе, удобная и мне → чтобы никуда не ехать.
Для экономии топлива, шасси сбрасывались при взлете штативы не повезли, уверяли, что найдут на месте.
Я отправил 4 miniDV камеры (пара Panasonic GS400 и пара GS-80). Достаточно для сьемки двух треков, раздельно докладчика и зал. Экран, понятно, должен был записываться скринкастом (ну или на худой конец — отдельной камерой).
Я сказал беспилотный? Ну, Автоматика у нас пишется с большой буквы, конечно понадобился попутный космонавт, кому передали оборудование на Байконуре в воротах Белорусского вокзала, по пути в аэропорт.
И срочным образом записал краткие видеоинструкции, как ими пользоваться, как правильно снимать конфу, и где кстати, поясняется, почему miniDV-камеры оптимальны для съемки конференций:
После отлета связь прервалась, обновление прошивки марсохода не удалось организаторы вышли на связь после конференции, и выяснилось, ну что ожидаемо, первый блин вышел комом, но неполным, fail не вполне epic.
- Видеоинструкции никто не смотрел (из операторов — точно). Снято дико, без крупных планов, с засветкой от экрана проектора (снимать надо было только докладчика, крупно, остальное только портит картику). Монтировать это потом с экраном практически бессмысленно.
- Осилили поставить на штативы только одну камеру! (Я до сих пор не понимаю, как это возможно).
- Звук тоже так себе (звук с ноута был вообще никакой).
В общем, на прошлой неделе вернулся один зонд с частью камер и записью первого трека. Скринкасты этого трека удалось скачать из космоса через интернет (хотя специально прилагалась 32GB SDCard).
Как я уже говорил, непонятно, стоит ли монтировать для публикации на вебхостингах (нет четкой картинки докладчика), и вообще, стоит ли того материал. Например, некоторые доклады (пусть и первая версия) уже доступны в записи.
Решать это вам, дорогие зрители!
Я сделал оптимальный видеоконсерв-матрешку (обязательно прочтите это, кто еще нет). Реально прочтите, чтобы не было глупых вопросов.
Ну а теперь, скачивайте и смотрите (не через трижевроуминге):
- 2GB
- http://wiki.4intra.net/public/conferences-draft/utd2012/2012-08-18-UTD.uncut.mkv
- 980MB
- http://wiki.4intra.net/public/conferences-draft/utd2012/2012-08-18-UTD-1track-mini.mkv («выжатая» версия, но качество не сильно хуже).
Что там? Весь первый трек программы. Экран + Камера там есть, как их открыть обоих, как ускорять запись и перематывать паузы → прочтите таки инструкцию. Если что не слава богу → пишите в комменты.
Ну а потом, посмотрим, надо ли делать и вебверстку для публикации на вимео или ютубе.
Может ведь все это никому не интересно, может смысл только в тусовке, ну и вообще, у нас тоже Agile, PULL, no Big Upfront и т.п. Т.е., голосуем:
Надо делать вебпубликацию первого трека UTD-2012?
Заодно будет понятно, стоит ли возится со вторым треком, если отснятое таки вернется на землю (там снимали другими камерами, и я ожидаю больший геморой по синхронизации).
А также стоит ли продолжать снимать конференции, или все это скатилось до уровня тусовок среди своих и
толку в этом нет. В любом случае, если кто-то захочет подобной «удаленной сьемки», я думаю, сначала он должен будет пройти мой дистанционный «курс оператора» и сдать тест.
Matroska. Матрешка. Видеоконсерв. Самый простой и эффективный.
Я многократно пропагандировал простую идею, что активный просмотр, т.е.
- правильные программные плееры, такие как VLC, с управлением скоростью воспроизведения и возможностью быстрого листания.
- многоканальная запись раздельных каналов «экран», «докладчик», «зал».
- мотивированный зритель
позволяет «Магомету сделать шаг к горе», и минимизировать дорогой и муторный видеомонтаж конференций, лекций и семинаров, с точки зрения «вырезание лишнего» и «поддержание внимания пользователя».
Но остается проблема с «видеоверсткой» — т.е. размещением в окне-прямоугольнике этих самых видеоканалов. В такой постановке задача не имеет однозначно оптимального решения — ибо тут только зритель решает, что он хочет видеть — экран, докладчика или зал, в каких пропорциях делить между ними пространство доступных мониторов, и вообще, как все это оптимально разместить.
Ну, например, для кого-то, кто совсем не в теме доклада самое важное будет — экран, для других — докладчик, а для организаторов семинара и может для самого докладчика — важен зал и реакция аудитории, к тому же может быть интересная дискуссия или еще что-то внезапно интересное. В общем, причины могут быть разные, ценности разных потоков могут меняться для разных зрителей, и видеомонтажер, даже если он крокодила сьел на видеомонтаже театральных постановок[1] никогда не сможет выбрать 100% правильно. Ведь для минимально адекватной верстки ему нужно будет либо просмотреть, либо пролистать все потоки, что, даже если плюнуть на трудозатраты[2], дико задерживает публикацию видеоматериалов — а часто есть те, кому нужно «сразу, пока еще есть интерес, или никогда».
Так вот, решение есть — продвинутый формат медиаконтейнера, который позволяет упаковать несколько видео и аудиопотоков. Называется «Матрешка». Вернее, в оригинале они называются Matroska, и если не интересоваться, то есть шанс подумать, что речь идет о «полосатой матроске», но не ошибайтесь!
Те, кто смотрит Аниме, 100% сталкивались с этими файлами, имеющими расширение .mkv. По большому счету, анимешники его и изобрели, ибо нужно было придумать контейнер, в котором гнать и видео, и несколько звуковых дорожек → переведенная озвучка для нубов, оригинальная дорожка на мунспике для продвинутых, да плюс еще субтитры для тех, кто где-то посередине, ну или вообще хочет свежак[3]. И чтобы это все было упаковано современными кодеками, в один файл → для удобства пересылки и хранения, ну и в целом чтобы не было так уежищно, как DVD. Ну а хранение нескольких видеопотоков, хоть и не нужно для анимации, получилось само собой, из расширяемости формата.
Самое время применить военные технологии в мирных целях заюзать гражданские технологии в записях семинаров и конференций.
MKV-файл можно оперативно сделать с помощью SeminarAssembler, записав все имеющиеся видео- и аудио- потоки, а зритель, скачав файл и просматривая его через VLC, сможет открыть дополнительные видеопотоки в отдельных окнах, выбрав для «потока-экрана» большой размер, если надо читать или там что-то красивое, ну или наоборот, минимизировав или закрыв его, если там банальности, а информация передается рисованием на флипчарте.
- Кстати — по уму, каждая доска/флипчарт тоже должны быть в отдельном потоке, как и экран.
Единственная проблема — немного геморройно (несколько секунд), тратить время на открытие дополнительных потоков, многие до этого не додумаются, или забудут (даже если объяснять).
Поэтому, плиз, поддержите мой Feature Request к VLC.
Прекратилось действие, или что-то неинтересное на экране (групповая работа, треп) → перемотайте. Запомните клавиши управления VLC:
- CTRL→, CTRL←
- ±1 минута
- ALT→, ALT←
- ±10 секунд (наиболее удобное, имхо).
- SHIFT→, SHIFT←
- ±3 секунды («ну-ка повтори, что сказал»)
- RIGHTALT→, RIGHTALT←
- ±5мин.
Стало скучновато, докладчик усыпляет?
- «]»
- Добавьте ему 10% к скорости. И так раза три.
Наоборот, хрен разберешь его британский английский?
- «[»
- Притормозить на -10%. Сделайте -50%, и он все неторопясь разжует.
Плюс полезные клавиши оконного менеджера Windows:
- WIN+↑
- Максимизировать окно (рассмотреть что-то, прочитать текст).
- WIN+↓
- Вернуть как было.
Одновременно решается еще одна задача: выбор оптимального звука, если было несколько звуковых источников. А лучше, чтобы их действительно было несколько — камеры, ноутбук, диктофон, диктофон подключенный к радиоканалу петличного микрофона, и т.п.
Это еще одна задача выбора, ранее падающая на монтажера, и требующая хотя бы «пролистывания с прослушиванием». Да, обычно можно выбрать «оптимальный в целом источник» —— наиболее качественный микрофон, не очень далеко от докладчика, но по ходу дела могут быть исключения и тонкости:
- докладчик может отойти в дальний угол, где есть камера снимающая зал, и звук можно взять с нее,
- вопросы или дискуссию в зале лучше брать с микрофона в зале,
- если в камере меняют кассету или какие-то помехи → то «на безрыбье сам раком встанешь» сойдет и микрофон компьютера и вообще, что угодно, лишь бы можно было расслышать.
Так вот, эта проблема тоже решается, хотя в некотором смысле она перекладывается на пользователя — по умолчанию проигрывается выбранный монтажером аудиопоток, но если что-то не слышно, то легко переключится на другой. Лично я рекомендую просто запомнить клавишу «B», и делать это с клавиатуры.
Понятно, что при таком подходе минимальны затраты на видеосьемку и монтаж минимальны, при максимальной «дублирующей» надежности. Можно записать сколько угодно видеопотоков:
- «снимать» экран и скринкастом, и фотоаппаратом: вдруг докладчику придет в голову показывать на экране длинной палкой или лазерной указкой, и эта инфа не попадет ни в камеру докладчика, ни в скринкаст?.
- снимать докладчика и зал. И даже с нескольких ракурсов, с минимумом операторов.
- засунуть аудиопотоки со всех камер, и плюс еще диктофон (обычно он запишет лучше). В любом случае, вероятность, что случиться полный фейл и никакого звука не будет[4] — невозможно.
- в любом случае, тут работает самое надежное повышение надежности → многократное дублирование.
Так, с плюсами наверное, все теперь понятно. Какие минусы?
- Ну, если нужно сделать «продукт для чайников», чтобы игралось в броузере и хранилось на видеохостинге, то увы, надо делать видео- и аудио- верстку.
- Тоже самое, если нужно подготовить видео для мобильников или планшетов → там наверно непросто будет располагать несколько окон, даже если плеер будет поддерживать матрешку[5].
- Теряется место на избыточность (лишние минуты, пиксели и звук). Но это как раз пофиг, плюс у меня ощущение, что раздельная упаковка может дать и выигрыш.
- Ну и пока, при больших «прыжках» по файлу, дополнителнительные видеоокна могут не сразу синхронизироваться с основным — помогают легкие перемещения, типа «SHIFT←→», «CTRL←→».
В любом случае, разумно сначала сделать «матрешку», для тех, кому нужно быстро, здесь и сейчас. Матрешку радикальную, типа «конференция XXX, первый день, второй трек» — вполне можно весь день упихать в один MKV-файл, в 1-2 гига с максимальным, «читаемым» качеством.
А потом, по необходимости, в частности, возможно по отзывам тех, кто посмотрел (востребовано ли, нет ли косяков синхронизации, и т.п.), сделать «экспортный вариант».
Если же матрешка никому особо не нужна — то и не тратить время на верстку для видеохостинга — видимо была какая-то совершенно неинтересная фигня.
Как не посмотреть — PROFIT!
- ↑ Считается, что их снимать сложней, чем даже сериалы.
- ↑ Чего тоже не хотелось бы делать, ибо, увы, записи семинаров пока не могут похвастаться большим спросом, часто бывает запись посмотрит меньше десятка зрителей.
- ↑ Озвучивание дело долгое, а «осубтитренные матрешки для популярных сериалов появлялются на следующий день после трансляции по японскому тиви → там работает настоящий видеоконвеер переводчиков, верстальщиков и корректоров
- ↑ Такое у нас бывало, когда записывали на одну камеру не включив внешний микрофон
- ↑ Androidный VLC их играет, хотя пока только дефолтные потоки
Видео моего доклада с SWP-12: «Корпоративный Болливуд», или видеопоток знаний на конвейере
Опубликовали мое видео выступления с Software People, про эффективное использование видео для передачи знаний[1].
Анонс там был примерно такой:
«Видео для корпоративных знаний?» — впечатления и ассоциации обычно такие:
- Либо сложно и дорого, а если просто и дешево, то плохо.
- Неэффективно смотреть — долго и скучно.
- Негибко — нельзя коллаборативно обрабатывать, инкрементально актуализировать.
- Нельзя искать полнотекстово.
- Нет структуризации и категоризации.
- Нет гиперссылок.
- Нет reusability.
- Нет интегрируешь с корпоративной базой знаний…
- И вообще, видео/аудио — для полуголовых правополушарных гуманитариев, а в IT знания можно только «документировать», переводя в текст и схемы.
Вы тоже так думаете? На самом деле, все не так, а «вы просто не умеете их готовить». Правильное видео — самый быстроизготовимый и дешевый «информационный консерв», может занять достойную часть базы знаний, если понять, как им правильно пользоваться, и главное —технологизировать качественную готовку. Мы в компании решили все эти задачи, а теперь готовы поделиться со всеми секретами и даже уникальными разработками.
Снимали очень дорогие профессионалы, с очень крутой техникой, в процессе доклада я постоянно отвешивал им реверансы — и не подкачали, лучше поздно, чем никогда.
Да, с точки зрения качества (особенно при такой мощи) можно выдвинуть кучу претензий — и сверстать нужно было иначе — тут статичный «узкий» докладчик и экран справа от него — значит его и надо было ставить аналогично:
Звук тоже надо было выровнять, без наушников слышно не очень.
Но в любом случае, это сильно лучше чем публикация записей моих докладов на других конференциях (ни разу не осилили, если сам себя не снимал). Звук в наушниках вполне ОК. Экран виден — и в этом есть и моя заслуга, ибо полдня убил, подбирая разрешение на ноутбуке, и комбинацию проводов и преобразователей — и в результате выступал с подвешенным ноутбуком, но привязанным 15 метровым VGA-кабелем. Рекомендую.
Ну и да, скоро будет готово и обучение по SeminarAssembler.- ↑ Термин «управление знаниями» меня достал, а «обучение» это более широкая область, с педа- или андро- гогикой.