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:
| #!/usr/bin/env node | |
| var fixtures = [ | |
| "spec/js/react/apps/fixtures/index.json", | |
| "spec/js/react/apps/fixtures/show.json" | |
| ] | |
| var fs = require("fs") | |
| var Deserializer = require("jsonapi-serializer").Deserializer | |
| var deserialize = new Deserializer({keyForAttribute: "camelCase"}).deserialize |
| var reducer = (state = {}, action) => { | |
| switch action.type { | |
| case "CUSTOM_ACTION": | |
| return merge({}, state, {value: action.value}); | |
| default: | |
| state | |
| } | |
| } |
I hereby claim:
To claim this, I am signing this object:
| # Lesson: always use root scope when including a puppet module inside a profile or role file, e.g.: | |
| # include ::module | |
| # Wrong way | |
| class profile::mail::exim { | |
| include exim | |
| # This expands to current namespace first: | |
| # include profile::mail::exim | |
| # Causing a circular dependency. Include does not throw duplicate errors, so this fails silently. | |
| # Intended 'exim' module is never loaded |
| # | |
| # File lib/requestparser.py | |
| # | |
| class RequestParser: | |
| def parse(self, flask_request): | |
| self.request = flask_request | |
| return self._parse_request() |
| RewriteEngine on | |
| RewriteCond %{REQUEST_FILENAME} !-f | |
| RewriteCond %{REQUEST_FILENAME} !-d | |
| RewriteRule ^(.*)$ $1.php [L,QSA] | |
| # The two RewriteCond rules are boilerplate, they make sure files that exist | |
| # on the server (CSS, JS, images, etc) will not have their URLs rewritten and | |
| # be served directly. | |
| # The RewriteRule captures all remaining URL requests, and adds a .php to the end. |
| #!/usr/bin/env python | |
| # Adding the current directory to the Python path is easy: | |
| import os | |
| import sys | |
| this_dir = os.path.dirname(__file__) | |
| sys.path.insert(0, this_dir) | |
| # Now that the Python path includes the current directory, any | |
| # application specific modules can be loaded just like this was |
| ## Filter Table | |
| *filter | |
| :INPUT ACCEPT [971:197590] | |
| :FORWARD ACCEPT [0:0] | |
| :OUTPUT ACCEPT [95:9682] | |
| -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT | |
| -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT | |
| COMMIT |