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:
/* ---------------------------------------------------------- */ | |
/* */ | |
/* A media query that captures: */ | |
/* */ | |
/* - Retina iOS devices */ | |
/* - Retina Macs running Safari */ | |
/* - High DPI Windows PCs running IE 8 and above */ | |
/* - Low DPI Windows PCs running IE, zoomed in */ | |
/* - Low DPI Windows PCs and Macs running Firefox, zoomed in */ | |
/* - Android hdpi devices and above */ |
<!doctype html> | |
<!-- http://taylor.fausak.me/2015/01/27/ios-8-web-apps/ --> | |
<html> | |
<head> | |
<title>iOS 8 web app</title> | |
<!-- CONFIGURATION --> |
def my_method(foo, bar) | |
memoize(:my_method, foo, bar) do | |
foo * bar | |
end | |
end |
source :rubygems | |
gem 'sinatra' | |
gem 'json' | |
gem 'omniauth' | |
gem 'omniauth-oauth2' | |
gem 'omniauth-github' | |
# gem 'omniauth-att', :path => File.expand_path("./../../omniauth-att", __FILE__) | |
gem 'thin' |
[user] | |
name = Brad Fults | |
email = [email protected] | |
[alias] | |
amend = commit --amend | |
co = checkout | |
st = status | |
cp = cherry-pick | |
# edit config (global, local) |
--- | |
<%= ENV["RAILS_ENV"] %>: | |
error_collector: | |
capture_source: true | |
enabled: true | |
ignore_errors: ActionController::RoutingError | |
apdex_t: 0.5 | |
ssl: false | |
monitor_mode: true | |
license_key: <%= ENV["NEW_RELIC_LICENSE_KEY"] %> |
@mixin fancy-hover($sprite_dir, $off_state, $hover_state, $speed: 0.3s) | |
$sprites: sprite-map("#{$sprite_dir}/*.png") | |
$width: image-width(sprite_file($sprites, $off_state)) | |
$height: image-height(sprite_file($sprites, $off_state)) | |
@include hide-text | |
width: $width | |
height: $height | |
background: sprite($sprites, $off_state) no-repeat | |
display: block | |
position: relative |
require 'sinatra/base' | |
require 'memcached' | |
module Sinatra | |
module Memcacher | |
module Helpers | |
def cache(key, &block) | |
return block.call unless options.memcacher_enabled | |
begin |
# | |
# When you're using inject with a hash or somesuch, you can subgroup the source's elements: | |
# | |
# v--- the parens part here | |
{ 1 => 2, 3 => 4, :your => :mom }.inject({}) do |h, (k,v)| | |
h[k] = v**2 if v.is_a?(Numeric) | |
h | |
end | |
# => {1=>4, 3=>16} |