clojure-emacs / cider

The Clojure Interactive Development Environment that Rocks for Emacs
https://cider.mx
GNU General Public License v3.0
3.55k stars 645 forks source link

Add some animated gifs for all important features #996

Closed bbatsov closed 8 years ago

bbatsov commented 9 years ago

All of CIDER's important features are listed in the beginning of the README. It'd be great if we created a simple animated gif for each of those features (ideally, like the ones here).

Such "micro screencasts" will be pretty helpful for newcomers IMO.

flexibeast commented 9 years ago

i've asked @danmidwood about this; he used two separate programs to create the "Animated Paredit" GIFs, LICECap and KeyCastr. However, the former is Win- and OSX-only, the latter is OSX-only, and i'm on Linux, so neither are an option for me.

Dan also pointed me to a Python script that creates small PNGs which can be animated via JavaScript.

i'm wondering whether the latter is an option, or if using animated GIFs is essential? If the latter, i'll try to find some appropriate Linux-based software that can create the desired effects.

flexibeast commented 9 years ago

@Malabarba's camcorder.el looks like it might be the go for creating the animations, though i'm not sure how to show keystrokes à la KeyCastr ....

syohex commented 9 years ago

How about mkcast ? mkcast bundles keystroke screenkey which displays key types.

NOTE Linux users can use byzanz for creating animation Gif. mkcast uses byzanz. (I recommend you to use byzanz-window which is utility of byzanz).

flexibeast commented 9 years ago

@syohex:

i just cloned the mkcast repo. There's no bundled program called keystroke, though there is something called screenkey, which i symlinked into my $PATH. mkcast created the GIF fine, but there was no overlay showing keystrokes. Am i missing something?

(i'm on Debian 7.8 x86_64, btw - i installed the byzanz package from stable, which is version 0.2.2, and which doesn't include byzanz-window - is the latter only available in more recent versions of byzanz?)

syohex commented 9 years ago

Sorry I typo. keystroke -> screenkey.

syohex commented 9 years ago

mkcast created the GIF fine, but there was no overlay showing keystrokes. Am i missing something?

@flexibeast Do you install python-xlib package ? You should install python-xlib package for using screenkey.

syohex commented 9 years ago

(i'm on Debian 7.8 x86_64, btw - i installed the byzanz package from stable, which is version 0.2.2, and which doesn't include byzanz-window - is the latter only available in more recent versions of byzanz?)

byzanz-window is not bundled, you need to install if you use. I use it with byzanz 0.3.0. I don't know byzanz-window work with 0.2.2.

flexibeast commented 9 years ago

@syohex:

Yes, python-xlib (version 0.14+20091101) is already installed.

i tried to install byzanz-window via go get, but it failed with the following error message:

# github.com/syohex/byzanz-window/cmd/byzanz-window
/usr/lib/go/src/pkg/github.com/syohex/byzanz-window/cmd/byzanz-window/byzanz-window.go:148: undefined: bufio.NewScanner
syohex commented 9 years ago

i tried to install byzanz-window via go get, but it failed with the following error message

I suppose your go is too old. Which version do you use ?

flexibeast commented 9 years ago

@syohex:

i was using the version of golang from the current stable repo - 1.0.2 - but have just installed the version from the testing repo - 1.3.3. The go get command now seems to complete succesfully.

So how do i now run the installed version of byzanz-window?

syohex commented 9 years ago

byzanz-window is installed $GOPATH/bin. So add $GOPATH/bin to $PATH.

Command is like this

# Capture selected window for 20 seconds to output.gif
% byzanz-window --duration=20 --delay=1 --cursor output.gif

#  Capture selected rectangle area to output.gif
% byzanz-window --duration=7 --delay=1 --rectangle output.gif

See also

flexibeast commented 9 years ago

@syohex:

Okay, i've added $GOPATH/bin to $PATH. But trying to run byzanz-window like this:

% byzanz-window --duration=20 --delay=5 --cursor output.gif

immediately exits with the message:

exit status 1

Just to clarify: does byzanz-window record keystrokes and incorporate them into the GIF as a text overlay? Because that's the main problem i'm facing: i can create animated GIFs via mkcast (or camcorder.el, or vokoscreen), but i need something which will incorporate into the GIF a display of which keys were pressed when.

syohex commented 9 years ago

does byzanz-window record keystrokes and incorporate them into the GIF as a text overlay

No. It's only byzanz wrapper. Sorry I misleded you.

Malabarba commented 9 years ago

@flexibeast I should say, while camcorder.el is a nice utility, by default it uses recordmydesktop for the gifs. But I've now come to realize byzanz produces gifs of much better quality (at the expense of having to provide the duration in advance).

bbatsov commented 9 years ago

Btw, we can probably have a small wiki article for per key feature - the animated gif + a few extra explanations.

bbatsov commented 9 years ago

@expez I see you've been doing this for clj-refactor. Maybe you'd like to do so for cider as well? :-)

expez commented 9 years ago

I basically worked on the clj-refactor wiki for two full days to get that done. I discovered bugs and things to tweak, which I fixed, while recording the gifs, so it turned out to be quite the rabbit hole :p

Malabarba commented 9 years ago

@expez Well, now that you're all the way down the hole, might as well do one more thing before coming back up. :-) (just kidding, of course)

bbatsov commented 8 years ago

Closing this as non-important and unlikely to happen soon.