This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| becker@pop-os:~/trash/aha/aha-app$ cat ~/.config/kitty/kitty.conf | |
| # vim:fileencoding=utf-8:ft=conf:foldmethod=marker | |
| #: Fonts {{{ | |
| #: kitty has very powerful font management. You can configure | |
| #: individual font faces and even specify special fonts for particular | |
| #: characters. | |
| # font_family monospace |
| macro_rules! externs { | |
| ( $( $x:ident ),* ) => { | |
| $( | |
| extern crate $x; | |
| )* | |
| }; | |
| } | |
| externs![rocket, rocket_contrib, serde_json, | |
| chrono, dotenv, postgres, r2d2, |
| #[derive(Serialize,Associations, Identifiable, Deserialize, Queryable, Debug, Clone)] | |
| #[table_name = "places"] | |
| #[has_many(inspections)] | |
| pub struct Place { | |
| pub id: i32, | |
| pub name: String, | |
| pub program_identifier: String, | |
| pub description: Option<String>, | |
| pub phone: Option<String>, | |
| pub address: String, |
| use diesel; | |
| use diesel::prelude::*; | |
| use diesel::pg::PgConnection; | |
| use dotenv::dotenv; | |
| use std::env; | |
| use schema::inspections; | |
| use schema::inspections::dsl::inspections as all_inspections; | |
| use schema::places; | |
| use schema::places::dsl::places as all_places; |
| // The Module object: Our interface to the outside world. We import | |
| // and export values on it, and do the work to get that through | |
| // closure compiler if necessary. There are various ways Module can be used: | |
| // 1. Not defined. We create it here | |
| // 2. A function parameter, function(Module) { ..generated code.. } | |
| // 3. pre-run appended it, var Module = {}; ..generated code.. | |
| // 4. External script tag defines var Module. | |
| // We need to do an eval in order to handle the closure compiler | |
| // case, where this code here is minified but Module was defined | |
| // elsewhere (e.g. case 4 above). We also need to check if Module |
| I checked out your repo under examples folder in helix | |
| $ ~/trash/helix/examples/case_transform[master]: pwd | |
| /Users/becker/trash/helix/examples/case_transform | |
| $ ~/trash/helix/examples/case_transform[master]: rustc --version | |
| rustc 1.13.0-nightly (32571c05c 2016-09-17) | |
| $ ~/trash/helix/examples/case_transform[master]: ruby --version | |
| ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15] | |
| $ ~/trash/helix[master*]: cargo build --release | |
| Compiling libc v0.2.11 |
| Compiling image_gen v0.1.0 (file:///Users/becker/trash/image_gen) | |
| src/main.rs:25:26: 25:41 error: the trait bound `&image::ImageBuffer<image::Rgba<u8>, std::vec::Vec<u8>>: img_hash::HashImage` is not satisfied [E0277] | |
| src/main.rs:25 let generated_hash = ImageHash::hash(&generated, 8, HashType::Gradient); | |
| ^~~~~~~~~~~~~~~ | |
| src/main.rs:25:26: 25:41 help: run `rustc --explain E0277` to see a detailed explanation | |
| src/main.rs:25:26: 25:41 help: the following implementations were found: | |
| src/main.rs:25:26: 25:41 help: <image::ImageBuffer<image::Luma<u8>, std::vec::Vec<u8>> as img_hash::HashImage> | |
| src/main.rs:25:26: 25:41 help: <image::ImageBuffer<image::LumaA<u8>, std::vec::Vec<u8>> as img_hash::HashImage> | |
| src/main.rs:25:26: 25:41 help: <image::ImageBuffer<image::Rgb<u8>, std::vec::Vec<u8>> as img_hash::HashImage> | |
| src/main.rs:25:26: 25:41 help: <image::ImageBuffer<image::Rgba<u8>, std::vec::Vec<u8>> as img_hash::HashImage> |
| extern crate curl; | |
| use curl::easy::Easy; | |
| use std::error::Error; | |
| use std::io::prelude::*; | |
| use std::fs::File; | |
| use std::path::Path; | |
| // Print a web page onto stdout | |
| fn main() { |
| // _IMAGE AUTHENTICATION FOR A SLIPPERY NEW AGE_ | |
| //by Steve Walton | |
| //Listing One | |
| // <sealimg.c> | |
| // Copyright 1994 by Steve Walton | |
| // | |
| // This implementation measures checksums using all of the upper 7 bits of each |