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:
| // Docs/etc. | |
| server.get(null, '/', function(request, response, next) { | |
| response.send(302, null, { | |
| Location: config.siteName + '/docs' | |
| }); | |
| return next(); | |
| }, log.w3c); | |
| server.get(null, '/docs', function(req, res, next) { |
| --- | |
| layout: default | |
| --- | |
| <div class="blog-index"> | |
| {% assign post = site.posts.first %} | |
| {% assign content = post.content %} | |
| {% include post_detail.html %} | |
| </div> |
| log_level :info | |
| log_location STDOUT | |
| node_name 'solo' | |
| client_key File.expand_path('../solo.pem', __FILE__) | |
| cache_type 'BasicFile' | |
| cache_options( :path => File.expand_path('../checksums', __FILE__)) | |
| cookbook_path [ File.expand_path('../../cookbooks', __FILE__) ] |
| # fabric extension to enable handling expected prompts | |
| # | |
| # Read more at http://ilogue.com/jasper/blog/fexpect--dealing-with-prompts-in-fabric-with-pexpect/ | |
| # | |
| # This file Copyright (c) Jasper van den Bosch, ilogue, jasper@ilogue.com | |
| # Pexpect Copyright (c) 2012 Noah Spurrier ,see: http://www.noah.org/wiki/pexpect#License | |
| from fabric.state import env | |
| import fabric.api |
| # based on http://uberblo.gs/2011/06/high-performance-url-shortening-with-redis-backed-nginx | |
| # using code from http://stackoverflow.com/questions/3554315/lua-base-converter | |
| # "database scheme" | |
| # database 0: id ~> url | |
| # database 1: id ~> hits | |
| # database 2: id ~> [{referer|user_agent}] | |
| # database 3: id ~> hits (when id is not found) | |
| # database 4: id ~> [{referer|user_agent}] (when id is not found) | |
| # database 5: key "count" storing the number of shortened urls; the id is generated by (this number + 1) converted to base 62 |
| This playbook has been removed as it is now very outdated. |
| import itertools | |
| import functools | |
| import fnmatch | |
| import os | |
| from StringIO import StringIO | |
| import yaml | |
| from yaml.parser import ParserError | |
| import voluptuous as V |
| [2013-07-23T22:15:28+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out | |
| [2013-07-23T22:15:28+00:00] FATAL: Mixlib::ShellOut::ShellCommandFailed: python_pip[supervisor] (supervisor::default line 29) had | |
| an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1' | |
| ---- Begin output of pip install --upgrade supervisor ---- | |
| STDOUT: Could not find a version that satisfies the requirement supervisor in /usr/local/lib/python2.7/dist-packages (from version | |
| s: 3.0b2, 3.0a9, 3.0a11, 3.0a8, 3.0a7, 3.0a10, 3.0a12, 3.0b2, 3.0b1) | |
| Downloading/unpacking supervisor | |
| Cleaning up... | |
| No distributions matching the version for supervisor in /usr/local/lib/python2.7/dist-packages | |
| Storing complete log in /home/ubuntu/.pip/pip.log |
| #!/usr/bin/env ruby | |
| # Fuzz you fizzbuzz | |
| # | |
| def method_missing(m, arg, &block) | |
| [arg, m.to_s.split('_').select{|e| | |
| (arg%(((e.to_s.bytes. | |
| inject{ |sum, i| sum + i } % 15) / 3.0 | |
| ).ceil + 2)).zero? | |
| }.join()].join(' ') |