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:
| phantom.injectJs "casper.js" | |
| getLinks = -> | |
| links = document.querySelectorAll "h3.r a" | |
| Array::map.call links, (e) -> e.getAttribute "href" | |
| links = [] | |
| casper = new phantom.Casper() | |
| casper.start "http://google.fr/", (self) -> |
| <?php | |
| /** | |
| * Scrape the number of podcast reviews from iTunes for all country specific storefronts. | |
| * | |
| * @author Sean Murphy <[email protected]> | |
| */ | |
| $podcast_id = '366931951'; // Startups For the Rest of Us | |
| //$podcast_id = '318567721'; // techzing |
| require 'date' | |
| # Actually doesn't matter WHAT you choose as the epoch, it | |
| # won't change the algorithm. Just don't change it after you | |
| # have cached computed scores. Choose something before your first | |
| # post to avoid annoying negative numbers. Choose something close | |
| # to your first post to keep the numbers smaller. This is, I think, | |
| # reddit's own epoch. | |
| $our_epoch = Time.local(2005, 12, 8, 7, 46, 43).to_time |
| <?php | |
| /** | |
| * Scrape the number of app reviews from iTunes. | |
| * | |
| * Set the iOS app id and the number of pages to scrape, and it creates a {$app_id}-reviews.csv file | |
| * | |
| * @author Kent Bye <[email protected]> | |
| * Modified and extended from Sean Murphy's gist at https://gist.github.com/1878352 | |
| */ |
npm install -g yoyo webappnpm install grunt-contrib-jade --save-dev| #!/usr/bin/env ruby | |
| # Used to perform multiple requests of urls for benchmarking | |
| # | |
| # @example | |
| # # Requests the url 3 times outputting times for each | |
| # ./benchmark_url 3 http://my.url.com | |
| # ruby benchmark_url 3 http://my.url.com | |
| # | |
| # # Requests each url 5 times outputting times for each |
| /** @jsx React.DOM */ | |
| define([ | |
| 'underscore', 'jquery', 'react', 'platform/uuid' | |
| ], function (_, $, React, uuid) { | |
| 'use strict'; | |
| /** | |
| * SwitchBox control (checkbox with special markup to look like a light switch). | |
| * Can be configured with an optional `onChange` prop to effect state up the tree. | |
| */ |
| angular.module('restangularDemoApp', [ | |
| 'restangular', | |
| 'ngCookies' | |
| ]) | |
| .constant('apiKey', 'YOUR_Mongolab_API_KEY') | |
| .config(function(RestangularProvider, apiKey) { | |
| RestangularProvider.setBaseUrl('https://api.mongolab.com/api/1/databases/YOURDATABASE/collections'); | |
| RestangularProvider.setDefaultRequestParams({ | |
| apiKey: apiKey | |
| }) |
| 'use strict'; | |
| module.exports = function(grunt) { | |
| // load all grunt tasks | |
| require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); | |
| // configurable paths | |
| var paths = { |