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:
| # For Bundler.with_clean_env | |
| require 'bundler/setup' | |
| require 'rake' | |
| PACKAGE_NAME = 'pathos_gui' | |
| VERSION = '1.0.0' | |
| TRAVELING_RUBY_RELEASE = '20241122' | |
| RUBY_VERSION = '3.2.6' unless ENV['RUBY_VERSION'] | |
| TRAVELING_RUBY_VERSION = "#{TRAVELING_RUBY_RELEASE}-#{RUBY_VERSION}" | |
| # TRAVELING_RUBY_VERSION = "20150210-2.1.5" |
| require 'fileutils' | |
| class Ruby2Pack | |
| attr_reader :source_path, :ruby_version, :platform, :rel, :output_path | |
| def initialize(source_path:, ruby_version:, platform:, rel:) | |
| @source_path = source_path | |
| @ruby_version = ruby_version | |
| @platform = platform | |
| @rel = rel |
| #lang racket/base | |
| ; One way to define a logger | |
| (define lg (make-logger 'my-logger)) | |
| ; Define a receiver for this logger, along with a log level | |
| (define rc (make-log-receiver lg 'error)) ; also try with 'debug | |
| ; Another way to define a logger, with additional forms | |
| (define-logger lg2) | |
| (define rc2 (make-log-receiver lg2-logger 'debug)) |
| #lang racket | |
| (provide solve) | |
| (define (solve puzzle) | |
| (define words (regexp-split #rx"==|[+]" (string-replace puzzle " " ""))) | |
| (define number-set (range 10)) | |
| (define individual-letters |
| { | |
| "diagnostics.globals": [ | |
| "vim", | |
| "describe", | |
| "it", | |
| "pending", | |
| "before_each", | |
| "after_each" | |
| ] | |
| } |
| <template> | |
| <div id="app"> | |
| <router-view></router-view> | |
| <div class="refresh-container" v-if="hashChanged && $root.env !== 'development'"> | |
| <div class="notification-header"> | |
| <button type="button" class="close-refresh-modal" @click="closeModal" aria-label="Close"> | |
| <span aria-hidden="true"><i class="fal fa-times fa-sm"></i></span> | |
| </button> | |
| </div> | |
| <div class="notification-body"> |
| import axios from 'axios'; | |
| export const refreshPageMixin = { | |
| data() { | |
| return { | |
| currentHash: '{{POST_BUILD_ENTERS_HASH_HERE}}', | |
| token: localStorage.getItem('user-token'), | |
| hashChanged: false, | |
| newHash: '' | |
| } |
| { | |
| "scripts": { | |
| "build": "node build/build.js && npm run post:build", | |
| "post:build": "node build/post-build.js" | |
| }, | |
| } |
| const path = require('path'); | |
| const fs = require('fs'); | |
| const util = require('util'); | |
| // get application version from package.json | |
| const appVersion = require('../package.json').version; | |
| // promisify core APIs | |
| const readDir = util.promisify(fs.readdir); | |
| const writeFile = util.promisify(fs.writeFile); |