Wikilogs
Connect Cocalc by OAuth with MediaWiki (MediaWiki4IntraNet)
- The Idea
CoCalc (my fork) is great service for scientific realtime collaboration (jupyter notebooks, latex editing, PDF articles sharing). But it is not suitable for creating Team Portal/Dashboard, and Team Knowledge Base. Lot of loosely connected projects, impossibility of consistenly linked/renamed pages, … So better to have MediaWiki (MediaWiki4IntraNet) + CoCalc with authorization on the MediaWiki. Additionaly to Content Features, this binging get interesting possibilities to Team Authorization. For example, «extensions/LdapAuthentication» allows MediaWiki authenticate by LDAP, but is is not possible without radical patching, add LDAP Auth to Cocalc.
So, how to do it.
For MediaWiki4IntraNet, install REL1_26 branch of our fork https://github.com/mediawiki4intranet/mediawiki-extensions-OAuth (branch REL1_26 unusable and need patch).
Add this to LocalSettings:
$wgGroupPermissions['user']['mwoauthproposeconsumer'] = true; $wgGroupPermissions['user']['mwoauthupdateownconsumer'] = true; $wgGroupPermissions['user']['mwoauthmanageconsumer'] = true; $wgGroupPermissions['user']['mwoauthsuppress'] = true; $wgGroupPermissions['user']['mwoauthviewsuppressed'] = true; $wgGroupPermissions['user']['mwoauthviewprivate'] = true; $wgGroupPermissions['user']['mwoauthmanagemygrants'] = true;
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]. Получалось тоже не всегда, и утомился сильно (пришлось даже пропустить обед). Наверно больше так делать не буду — запись конференции только при договоренности заранее, с контролем процесса, с содействием организаторов, с волонтерами, следящими за процессом.
Из обидных потерь — пропали мои спортивно-хипстерские очки (и штука недешевая, и редкая — тащил из штатов).
link= Организаторы! Если вы прихватили из главного зала около ноута шапку с странным очками с черной оправой и резинками — плиз, верните! Снег сошел, а как мне ездить на велосипеде/роликах/самокате… без этих очков.
Хотя кого я обманываю, мне уже совсем давно не до спорта.
В любом случае, все монтируется, и постепенно публикуется в отдельный альбом, и хоть художественного качества будет немного, доклады должны получится информационно-смотримыми, ну и я буду их итерационно улучшать, по мере проверки.
Стоит ли смотреть?
Ведь до конфы, в блогосфере был замечен некий отрицательный хай. 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-стриптиз (рабочий стол там, интимная структура каталогов и т.п.).
Так что если вы ---, то ---.