Skip to content

Instantly share code, notes, and snippets.

@sosedoff
sosedoff / main.go
Created March 11, 2015 12:12
geoip2 golang test
package main
import (
"log"
"net"
"os"
"github.com/gin-gonic/gin"
"github.com/sosedoff/geoip2-golang"
)
@sosedoff
sosedoff / gs-favorites.rb
Created March 19, 2011 17:17
Download your grooveshark favorites
require 'rubygems'
require 'grooveshark'
gs = Grooveshark::Client.new
user = gs.login('USER', 'PASSWORD')
user.favorites.each do |s|
name = "#{s.id}_#{s.artist} - #{s.name}"
puts name
url = gs.get_song_url(s)
@sosedoff
sosedoff / restrict.rb
Created April 10, 2011 01:52
Rake middleware to bounce off mobile devices and bots
module Rack
class Restrict
REGEX_MOBILE = /(blackberry|motorokr|motorola|sony|windows ce|240x320|176x220|palm|mobile|iphone|ipod|symbian|nokia|samsung|midp)/i
REGEX_BOTS = /(google|yahoo|baidu|bot|webalta|ia_archiver)/
attr_reader :options
def initialize(app)
@app = app
end
@sosedoff
sosedoff / sphinxclient.c
Created April 19, 2011 22:59
Sphinxclient.c path
__END__
--- a/api/libsphinxclient/sphinxclient.c
+++ b/api/libsphinxclient/sphinxclient.c
@@ -277,7 +277,7 @@
}
-void sock_close ( int sock );
+static void sock_close ( int sock );
@sosedoff
sosedoff / text_markup.rb
Created May 10, 2011 23:21
TextMarkup module for Ruby 1.9.2
require 'RedCloth'
require 'rdiscount'
require 'rdoc/markup/to_html' # ruby1.9.2 specific
module TextMarkup
extend self
# Auto-detect format from filename and render content
def render(filename, content)
name = File.basename(filename.to_s.strip)
@sosedoff
sosedoff / google2.rb
Created May 19, 2011 19:59
Goole OAuth2 omniauth strategy
require 'omniauth/oauth'
require 'multi_json'
module OmniAuth
module Strategies
class Google2 < OAuth2
def initialize(app, client_id = nil, client_secret = nil, options = {}, &block)
client_options = {
:site => 'https://accounts.google.com/o/oauth2',
:authorize_url => 'https://accounts.google.com/o/oauth2/auth',
@sosedoff
sosedoff / mkmf.log
Created September 7, 2011 20:57
charlock_holmes failed build
have_library: checking for main() in -licui18n... -------------------- yes
"/usr/bin/gcc-4.2 -o conftest -I/Users/sosedoff/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/x86_64-darwin10.8.0 -I/Users/sosedoff/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/Users/sosedoff/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -I/usr/local/Cellar/icu4c/4.4.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe conftest.c -L. -L/Users/sosedoff/.rvm/rubies/ruby-1.9.2-p290/lib -L/usr/local/Cellar/icu4c/4.4.1/lib -L. -L/usr/local/lib -lruby.1.9.1-static -lpthread -ldl -lobjc "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */
@sosedoff
sosedoff / rack_revision.rb
Created December 12, 2011 23:08
Add X-Revision headers from capistrano deployment
module Rack
class Revision
@@revision = nil
File = ::File
def initialize(app, &block)
@app = app
@block = block
@file = File.join(Dir.pwd, 'REVISION')
end
@sosedoff
sosedoff / yelp.rb
Created February 8, 2012 05:13
Fetch business price range from Yelp
require 'faraday'
module Yelp
PRICE_RANGE_REGEX = /<span id="price_tip" \b[^>]*>(.*?)<\/span>/i
def self.restaurant_price_range(id)
url = "http://www.yelp.com/biz/#{id}"
body = Faraday.get(url).body
body.scan(PRICE_RANGE_REGEX).flatten.first.to_s.length
end
@sosedoff
sosedoff / net_ssh_session.rb
Created October 30, 2012 06:08
Net::SSH::Session experiments
require 'net/ssh'
require 'net/ssh/shell'
require 'open3'
module Net
module SSH
class SessionCommand
attr_reader :command, :output, :exit_code
# Initialize a new session command