mindpin / problems

问题驱动研发!!
5 stars 1 forks source link

https://asciinema.org/ 调研 #89

Open ben7th opened 9 years ago

ben7th commented 9 years ago

希望对 https://asciinema.org/ 这个演示制作工具工具进行调研,主要想了解以下内容:

  1. 这个工具的用途?(我第一印象觉得他就是一个字符界面的操作过程录制工具,不知这个印象是否准确)
  2. 使用限制?(支持的操作系统,是否需要翻墙等)
  3. 大致使用步骤?(第一步,第二步,第三步…… 不用描述得太具体)
  4. 产出物的保存方法和展现形式?
  5. 如何发布和分享他的产出物?
  6. 如果可能,尝试制作一个简单的样例(可以演示一些 linux 的命令操作)

此调研时间不宜超过一天半,如果一天内能完成最好

pimgeek commented 9 years ago

1 这个工具的用途?(我第一印象觉得他就是一个字符界面的操作过程录制工具,不知这个印象是否准确)

它的确就是一个字符界面的操作过程录制工具,录制过程在本地的 linux 终端上进行,录制完毕后自动生成一个网页版的可回放演示。与一般的 flash 动画回放不同,这个演示中出现的命令行是可以直接复制的。

2 使用限制?(支持的操作系统,是否需要翻墙等)

它支持 Linux , Mac OS X, FreeBSD 和各种类 unix 操作系统。可以利用包管理工具安装,也可以利用官方的安装脚本进行安装,还有利于 make 命令进行安装的选项。这些在其官网上都有详细说明 - https://asciinema.org/docs/installation 通过天津联通访问,在不穿越的情况下也能访问,只是第一次载入的速度特别慢,要等待 15~20 秒之久,有时候即使载入完毕了还会有无法正常播放的问题;在穿越的情况下,第一次载入时间会降低到 10 秒左右,载入完毕后即可正常播放。

3 大致使用步骤?(第一步,第二步,第三步…… 不用描述得太具体)

我在 debian 8.0 系统上尝试安装和使用 asciinema

  • 第一步,下载 asciinema 的安装脚本,并且执行它。
  • 第二步,执行 asciinema rec 命令,之后就开始录制了
  • 第三步,需要录制的命令都输入完毕后,执行 exit 即可退出录制过程
  • 第四步,退出录制后有两个选择,按 Enter 可以把刚刚录制好的内容上传到服务器端,按 Ctrl+C 则不上传直接退出。(按了 Enter 后会直接返回一个网址,例如 - https://asciinema.org/a/18puwpzgl0a8mp6r05t5n4vwz
  • 第五步,访问网址查看回放的效果。
  • 第六步,如果点击了登录按钮,则会被要求给出一个电子邮箱,提交后会受到一个登录链接,点击它即可登录。登录后可以修改标题和说明信息,或者删除回放文件。

4 产出物的保存方法和展现形式?

  • 产出物直接保存到 asciinema.org 的服务端,可能需要保持网络连接才能做到。(具体保存成什么不好说,似乎是 json。比如 irb 演示回放,点击播放按钮后,在代码查看器中可以看到一个 貌似 json 格式的文件 被载入)
    • 还有一种保存方法,就是在开始录制之前直接运行 asciinema rec rec-file ,这样录制完毕后就不会上传到服务端,而是生成一个文本文件,内含回放所需的信息。而且,还可以利用 asciinema play rec-file 在终端下直接回放。(参考链接 - https://github.com/asciinema/asciinema#rec-filename )
  • 展现形式是一个网页上的动画,但不是 Flash 形式,而是纯 HTML 代码构造而成,如果在回放的过程中打开代码查看器,可以看到网页的源码一直在变化中。

5 如何发布和分享他的产出物?

  • 发布方法:录制完毕后,可以选择直接发布到公网,发布过程是自动完成的,使用者看不到。
  • 分享方法:录制并上传完毕后会返回一个网址,打开网址就可以找到 Embed 按钮。分享的方式有三种:HTML 图片链接方式,Markdown 图片链接方式,JS 直接嵌入方式(JS 嵌入后可以直接在网页上回放)。

6 如果可能,尝试制作一个简单的样例(可以演示一些 linux 的命令操作)

样例如下:

ben7th commented 9 years ago

补充讨论: 他似乎不能作为宏。


设想用途:

  1. 用来给新团队成员说明一些命令行工具的操作规范
  2. 可以用来给部署人员说明如何部署
  3. 用来作为领域教学组件教学内容

拓展用途: 自己理解其文件格式后,改造播放器,以实现更多功能。 改造其录制工具源码以更改文件上传位置: https://github.com/asciinema/asciinema

advancer-zz commented 9 years ago

该工具的实现原理,有可能是截获了shell的输入与输出,对于不同的环境中,分析与重放某些复杂问题,估计是有借鉴作用的。我还见过某些代理程序,可将每步的输入单独提取出来,点击输入就可看到对应的输出,估计这种工具也能做到类似的效果吧...