Skip to content

Instantly share code, notes, and snippets.

@macks
macks / gist:846152
Created February 27, 2011 12:43
Show daily diffstat summary in svn working copy
#!/bin/sh
from=$(date -d "${1:-today}" +%Y-%m-%d)
to=$(date -d "${2:-tomorrow}" +%Y-%m-%d)
d=$from
while true; do
next=$(date -d "$d + 1day" +%Y-%m-%d)
echo -n "$d:"
@macks
macks / gist:885402
Created March 24, 2011 16:51
paste url and open in new tab (for Firefox's keyconfig add-on)
var paste = readFromClipboard();
if (paste)
gBrowser.selectedTab = gBrowser.addTab(paste);
@macks
macks / gist:937135
Created April 22, 2011 17:19
rprotoc session
~$ cat info_t.proto
message Info_t {
required string Category = 1;
required string Value = 2;
}
~$ rprotoc info_t.proto
./info_t.pb.rb writing...
~$ cat test.rb
@macks
macks / gist:961171
Created May 8, 2011 06:37
local variables in eval
require 'rubygems'
require 'rspec'
describe 'Local variable in eval' do
context 'Assignment in eval' do
it 'works' do
expect {
eval <<-EOS
var = true
raise unless var
@macks
macks / gist:1338880
Created November 4, 2011 08:00
https client for Rev (libev)
require 'rev'
require 'rev/ssl'
class MyHttpClient < Rev::HttpClient
attr_reader :response_header, :response_body
def on_connect
@response_body = []
super
end
@macks
macks / commalize.rb
Created December 27, 2011 10:48
Integr#commalize
class Integer
def commalize
to_s.gsub(/\d(?=.{3}+$)/, '\0,')
end
end
if defined?(RSpec::Core::Runner)
describe 'Integer#commalize' do
[
[ 321, '321'],
@macks
macks / restart-unicorn.rb
Created December 29, 2011 12:57
Graceful restart script for Unicorn
#!/usr/bin/ruby
# restart-unicorn: Graceful restart for Unicorn
# depends on Linux's proc(5)
#
# MIT License: Copyright(c)2011 MATSUYAMA Kengo
require 'scanf'
require 'timeout'
class ProcFS
@macks
macks / iTunes_win32ole.rb
Created December 29, 2011 22:57
Controll iTunes from Ruby script using WIN32OLE
require 'win32ole'
app = WIN32OLE.new('iTunes.Application')
# p app.ole_obj_help
# p app.ole_methods
tracks = app.LibraryPlaylist.Tracks
puts "Num of tracks: #{tracks.Count}"
tracks.each do |track|
%w(Artist Name Album).each do |name|
@macks
macks / update-route53.sh
Created June 6, 2012 17:42
Update Route53
#!/bin/bash
cli53=$HOME/bin/cli53
. $HOME/.ec2/env
ec2-describe-instances | \
perl -lane '/^INSTANCE/ and $name = $F[3]; /^TAG/ and $F[3] eq "Name" and print "$F[4] CNAME $name"' | \
xargs -n 3 -r $cli53 rrcreate aws.example.com --ttl 60 --replace
@macks
macks / gist:6249109
Last active December 21, 2015 04:28
Bug fix for Tiarra IRC Proxy. Stuck in a name resolver when addresses are inconsistent.
--- a/main/Tiarra/Resolver.pm
+++ b/main/Tiarra/Resolver.pm
@@ -269,6 +269,8 @@ sub _paranoid_stage2 {
if ($entry->answer_status eq $entry->ANSWER_OK) {
if (grep { $data eq $_ } @{$entry->answer_data}) {
$closure->(1, $entry->query_data, $entry);
+ } else {
+ $closure->(0, undef, $entry);
}
} else {