The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Раздел полезных советов: Как получать ответы на вопросы по п..., auto_tips (??), 06-Июл-18, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


23. "Как получать ответы на вопросы по программированию прямо из ..."  +1 +/
Сообщение от igor_chubin (ok), 08-Июл-18, 19:28 
Мы используем asciinema тоже, но гифки обладают тем преимуществом, что

1) они могут показываться в ленте твиттера и на гитхабе без перехода на сайт asciinema (для asciiname трансляций вам нужно сначала кликнуть по ней, чтобы её посмотреть, что останавливает многих пользователей);

2) в них можно показывать графические объекты, которые нельзя показывать в asciinema.

(если вы смотрели гифку про использование Vim-плагина, то вы видели такие графические объекты).

Я не знаю, обратилили ли вы внимание или нет, но гифки эти были созданы полностью автоматически, без участия человека, с помощью системы визуализации процесса работы в терминале (она будет опубликована в ближайшее время и пока что используется нами, мною и некоторыми другими разработчиками, только в тестовом режиме). То есть, никто на самом деле в терминале ничего не набирал и ничего не записывал. Так вот, эта система поддерживает ряд форматов вывода, GIF только один из которых; кроме того она поддерживает MP4, AVI, FLV, Asciinema и некоторые другие. Так что нам было бы несложно сгенерировать тот же вывод в Asciinema-формате (конечно же, графические элементы при этом пропадут).

Ответить | Правка | Наверх | Cообщить модератору

24. "Как получать ответы на вопросы по программированию прямо из ..."  +/
Сообщение от Аноним (22), 08-Июл-18, 19:46 
Понятно, спасибо.

>эта система поддерживает ряд форматов вывода, GIF только один из которых; кроме того она поддерживает MP4, AVI, FLV, Asciiname и некоторые другие

Это круто!

Правда, я не совсем понял, как именно это работает "без участия человека". То есть ей, грубо говоря, подается лог сессии терминала, и она на основании этого генерирует анимации печати и перемещения курсора - я уловил идею?

Ответить | Правка | Наверх | Cообщить модератору

25. "Как получать ответы на вопросы по программированию прямо из ..."  +1 +/
Сообщение от igor_chubin (ok), 08-Июл-18, 20:26 
> Понятно, спасибо.
>>эта система поддерживает ряд форматов вывода, GIF только один из которых; кроме того она поддерживает MP4, AVI, FLV, Asciiname и некоторые другие
> Это круто!
> Правда, я не совсем понял, как именно это работает "без участия человека".
> То есть ей, грубо говоря, подается лог сессии терминала, и она
> на основании этого генерирует анимации печати и перемещения курсора - я
> уловил идею?

Да, почти, только ей передаётся не лог сессии терминала (потому что в том-то и идея, что никакой сессии терминала нет, потому что вы не набирали ничего в терминале, хотя впрочем это тоже было бы возможно, но это уже следующий шаг), а передаётся файл-сценарий (в нашей внутренней терминологии так называемый gifst файл, gifst это игра слов gif + gist; gist'ы на github'е вы знаете, это просто текстовые кусочки кода) состоящий из текста, который вводится в терминал, + специальных управляющих команд, которые описывают сцену и выполняют другие вспомогательные действия.

Например:

~~~~
g show intro.png
g sleep 10
g say-en Now I am editing a python file in Vim and making a cheat.sh query
g say-de Jetzt editiere ich eine python Datei in Vim. Dabei mache ich eine cheat.sh Anfrage
g say-ru Сейчас я редактирую некий Python-файл в Vim и делаю при этом запрос к cheat.sh
vi cheating.py
iappend file<[ Escape ]> KK<[ sleep 3 ]>q
g say-justify full
:q!
~~~~


Если вы мысленно уберёте строчки, начинающиеся с g (это метастрочки gifst'а, о которых я писал выше), то получится просто последовательность текста, которая вводится в виртуальный терминал (имитируя при этом ввод текста человеком с помощью случайных задержек между нажатиями и такого прочего): то есть открывается редактор, в нём переходим в режим вставки (i), набираем текст, нажимаем Esc (<[ ]> это специальные управляющие последовательности gifst, такие же как g-команды, только inline); нажимаем <leader>KK (в нашем случае это пробел KK), получаем описание как дописать в конец файла на Python; ждём 3 секунды; выходим из пейджера (q); выходим из Vim без сохранения.

Но это совмещается с g-командами, которые означают: показать сначала intro.png (там допустим какая-то интересная заставка), подождать 10 секунд, дальше происходит интересное:

сцена разделяется на три (которые в итоге сохраняются в трёх разных файлах, если необходимо, или в одном файле, если не поддерживается звук или если выбран только один язык), в каждой из которых голос за кадром говорит, что он делает (для этого по умолчанию используется генератор Amazon Polly, но можно использовать любой другой, хоть руками текст надиктовывать, тогда он берёт заранее подготовленные файлы с надиктованным текстом). При этом набирается текст.
Интересно, что скорость набора определяется тем, где стоит say-justify и значение после say-justify (left, right, center, full). Если full (как в нашем случае), то скорость набора подбирается исходя из скорости произнесения текста (звучит страшно, но на самом деле реализуется элементарно, потому что мы знаем количество нажатий и скольно длится звуковой фрагмент).

В итоге всё это дело собирается в единый файл или файлы с учётом поддерживаемых возможностей файла (MP4 или FLV или GIF поддерживают графику и звук; но из текстовых форматов, с другой стороны, можно копировать текст + показывать их в консоли; то есть тут нет единственно лучшего формата; собственно единственно лучший формат это gifst).

Вот, если вкратце, как оно работает

Ответить | Правка | Наверх | Cообщить модератору

26. "Как получать ответы на вопросы по программированию прямо из ..."  +/
Сообщение от Аноним (22), 08-Июл-18, 20:54 
Да, прикольно! Мощная штука у вас получилась.

>собственно единственно лучший формат это gifst

;)

И спасибо за подробное объяснение, было интересно читать. (Немного расширить, чуть-чуть подредактировать - и можно смело выкладывать в качестве анонса\введения. Короче, ждем релиза!)

Ответить | Правка | Наверх | Cообщить модератору

27. "Как получать ответы на вопросы по программированию прямо из ..."  +2 +/
Сообщение от igor_chubin (ok), 08-Июл-18, 21:32 
> И спасибо за подробное объяснение, было интересно читать. (Немного расширить, чуть-чуть
> подредактировать - и можно смело выкладывать в качестве анонса\введения. Короче, ждем
> релиза!)

Немного многовато текста для анонса :)
Спасибо! Скоро зарелизим

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру