Examples here use the default settings, see the VidStab readme on GitHub for more advanced instructions.
Here's an example video I made
brew install ffmpeg --with-libvidstab
// Creates a new promise that automatically resolves after some timeout: | |
Promise.delay = function (time) { | |
return new Promise((resolve, reject) => { | |
setTimeout(resolve, time) | |
}) | |
} | |
// Throttle this promise to resolve no faster than the specified time: | |
Promise.prototype.takeAtLeast = function (time) { | |
return new Promise((resolve, reject) => { |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>File Input</title> | |
</head> | |
<body> | |
<input type="file" id="fileInput"> | |
<script src="index.js"></script> | |
</body> |
<?php | |
// Buffer all upcoming output... | |
ob_start(); | |
// Send your response. | |
echo "Testing response"; | |
// Get the size of the output. | |
$size = ob_get_length(); |
<?php | |
/** | |
* Fancy ID generator that creates 20-character string identifiers with the following properties: | |
* | |
* 1. They're based on timestamp so that they sort *after* any existing ids. | |
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs. | |
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly). | |
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the | |
* latter ones will sort after the former ones. We do this by using the previous random bits | |
* but "incrementing" them by 1 (only in the case of a timestamp collision). |
Examples here use the default settings, see the VidStab readme on GitHub for more advanced instructions.
Here's an example video I made
brew install ffmpeg --with-libvidstab
/** | |
* A jQuery plugin for making a sortable/draggable multi-checkbox. | |
*/ | |
jQuery( window ).load(function() { | |
// The li that wraps this whole section of the customizer. Sort of like a fieldset. | |
var el = jQuery( '.customize-control-checkbox_group' ); | |
jQuery( el ).lxbAfCheckboxGroup(); |
<?php | |
if(!function_exists('config_path')) | |
{ | |
/** | |
* Return the path to config files | |
* @param null $path | |
* @return string | |
*/ | |
function config_path($path=null) |
class Admin::PaypalController < AdminController | |
skip_load_and_authorize_resource | |
before_filter :load_current_account, except: :ipn | |
skip_before_filter :authenticate_admin_user!, :verify_authenticity_token, :redirect_to_dashboard_if_account_is_disabled, :redirect_to_dashboard_if_maintenance, only: :ipn | |
rescue_from PaypalNotification::RecordInvalid, with: :notify_airbrake_and_render_nothing | |
rescue_from PaypalNotification::ResponseInvalid, with: :notify_airbrake_and_render_nothing | |
rescue_from PaypalNotification::HandlingFailed, with: :notify_airbrake_and_render_nothing |
RSpec.configure do |config| | |
config.before(:suite) do | |
DatabaseCleaner.clean_with(:truncation) | |
end | |
config.before(:each) do | |
DatabaseCleaner.strategy = :transaction | |
end | |
config.before(:each, js: true) do |
gem 'foreman' | |
gem 'puma' |