Skip to content

Instantly share code, notes, and snippets.

@arirusso
arirusso / vidsampler.rb
Created April 23, 2012 19:52 — forked from marcel/gist:2100703
vidsampler – extract audio samples from online video
#!/usr/bin/env ruby
#
# vidsampler – extract audio samples from online video
#
# for OSX only
#
# Usage:
#
# ruby vidsampler.rb [youtube url] [minute:second] [duration]
#
@arirusso
arirusso / expression_timer.rb
Created April 30, 2012 01:51
Ruby methods for protecting against timing attacks
#!/usr/bin/env ruby
#
# Ruby methods for protecting against timing attacks
#
module ExpressionTimer
# a shortcut to ExpressionTimer.send that passes in the object for which this module
# was included
#
@arirusso
arirusso / d3basics.html
Created September 18, 2012 18:14 — forked from ashleybot/d3basics1.js
D3.js Basic Vertical Bar Chart
<!DOCTYPE html>
<html>
<head>
<script src="http://d3js.org/d3.v2.min.js"></script>
</head>
<body>
<div role="main">
<div class="charts"></div>
<script language="JavaScript">
@arirusso
arirusso / remove_spaces.sh
Created June 6, 2013 17:28
One-liner to remove spaces from the names of all files in the current directory
#!/bin/sh
#
# Remove spaces from the names of all files in the current directory
#
ls -1 | while read file; do new_file=$(echo $file | sed s/\ //g); mv "$file" "$new_file"; done
@arirusso
arirusso / gifmp3.sh
Last active December 22, 2015 13:29
Create a quicktime movie that combines a looping animated gif with an mp3. The resulting movie will be the same length as the audio file.
#!/bin/sh
#
# Create a quicktime movie that combines a looping animated gif with an mp3. The resulting movie will
# be the same length as the audio file.
#
if [ $(( $# - $OPTIND )) -lt 4 ]; then
echo "Usage: $0 input.gif input.mp3 output.mov [framerate] [resolution]"
exit 1
fi
@arirusso
arirusso / transcriber.rb
Created January 3, 2014 04:52
Basic usage of the CMU Sphinx voice recognition toolkit in JRuby
require "java"
require "benchmark"
# To install and build CMU Sphinx, from the directory where you wish to run this script:
#
# svn co https://svn.code.sf.net/p/cmusphinx/code/trunk/sphinx4
# cd sphinx4
# ant
#
@arirusso
arirusso / webkitSpeechRecognition
Created January 4, 2014 01:52
Hello world for Web Speech API in a browser. Speak into the microphone and the recognized words will be printed
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JavaScript Web Speech API Example</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
var final_transcript = '';
@arirusso
arirusso / gifcut.rb
Created January 20, 2014 07:27
Extract animated gif from mp4 video
input_file,
output_file,
start_time,
duration,
fps,
scale = *ARGV
options = "-ao null -nosound -vo gif89a:fps=#{fps}:output=#{output_file} -ss #{start_time} -endpos #{duration} -vf scale=#{scale}"
player_path = "/Applications/MPlayer OSX Extended.app/Contents/Resources/Binaries/mpextended.mpBinaries/Contents/mpextended.mpBinaries/Contents/MacOS/mplayer"
@arirusso
arirusso / duration.sh
Created January 21, 2014 06:31
One-liner to get the total duration for .mov video files in the current directory
#!/bin/sh
#
# Get the total duration for .mov video files in the current directory
#
find *.mov -print0 | xargs -0 /Applications/MPlayer\ OSX\ Extended.app/Contents/Resources/Binaries/mpextended.mpBinaries/Contents/mpextended.mpBinaries/Contents/MacOS/mplayer -vo dummy -ao dummy -identify 2>/dev/null | perl -nle '/ID_LENGTH=([0-9\.]+)/ && ($t +=$1) && printf "%02d:%02d:%02d\n",$t/3600,$t/60%60,$t%60' | tail -n 1
@arirusso
arirusso / open_ableton_project.scpt
Created June 13, 2015 16:44
Open Ableton Live project from CLI
--- osascript open_ableton_project.scpt [project name]
on run argv
tell application "Finder"
--- get current directory
set parentpath to POSIX path of (parent of (path to me) as text)
end tell
tell application "Ableton Live 9 Suite"
open (POSIX path of parentpath) & "assets/ableton/" & item 1 of argv & " Project/" & item 1 of argv & ".als"
end tell