Skip to content

Instantly share code, notes, and snippets.

View sandyxu's full-sized avatar
Working from office

Sandy Xu sandyxu

Working from office
  • Shanghai, China
View GitHub Profile
#1 Generate Public & Private Keypair
#2 Create receipt.json - eg below - careful with line-endings, etc if line breaks
#3 Create signature & Encode
openssl dgst -binary -sha1 -sign private.pem receipt.json | openssl base64 > signature.txt
#4 Verify using OpenSSL & public key
openssl base64 -d -in signature.txt -out signature.sha1 | openssl dgst -sha1 -verify public.pem -signature signature.sha1 receipt.json
@sandyxu
sandyxu / get_prime_numbers.rb
Last active August 29, 2015 14:09
素数算法比较,使用Benchmark进行测试。
require 'benchmark'
# 遍历N是否能被从2到sqrt(N)之间的素数整除。若不能则为素数
def fast(max)
mini = Math.sqrt(max).to_i
sub_primes = sub_primes(mini)
sub_primes + ((mini+1)..max).select{|n| sub_primes.all?{|obj| n % obj > 0 } }
end
def sub_primes(sub)
@sandyxu
sandyxu / benchmark_test.rb
Created November 7, 2014 10:07
benchmark
# need gem install benchmark-ips
require 'benchmark/ips'
def slow(&block)
block.call
end
def fast
yield
@sandyxu
sandyxu / rbenv-install-and-using.md
Last active March 21, 2024 06:23
使用 rbenv 安装和管理Ruby版本

常用的几个 Ruby 版本管理工具有:rvmrbenv,ry,rbfu。rvm 应该是最早出现、使用最多的,因为过于强大以至于违背了某个 Linux 软件开发原则,所以出现了很多轻便的替代者,其中来自 37signals 的 rbenv 就很受欢迎。ry 和 rbfu 看上去更轻便,不过使用不广泛。之前使用过rvm, 这次尝试下rbenv。

我的环境是 Ubuntu14.04

1. 安装 rbenv

rbenv的源代码托管在github,在终端中,从 github 上将 rbenv 源码 clone 到本地,然后设置 $PATH。

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
@sandyxu
sandyxu / scan_chinese.rb
Created August 8, 2014 10:29
找出指定路径下文件中包含中文的行
# encoding: utf-8
class ScanChinese
def self.scan(file)
if File.directory?(file)
files = (Dir.entries(file) - %w( . .. ))
dir = files.map{|name| File.join(file, name)}
dir.each do |filename|
if File.directory?(filename)
scan(filename)
else
@sandyxu
sandyxu / git-description.md
Last active August 29, 2015 14:04
git command description

Git 安装与初始化

Linux

如果你用的是Linux,你可以用你的本地包管理系统(native package management system)来安装.

$ yum install git-core  #译者注,在redhat等系统下用yum

$ apt-get install git-core #译者注,在debian, ubuntu等系统下用apt-get
@sandyxu
sandyxu / sort.rb
Created July 22, 2014 03:47
经典排序算法资料及 ruby 实现
class Array
# 插入排序
def insert_sort!
(0...self.length).to_a.each do |j|
key = self[j]
i = j - 1;
while i >= 0 and self[i] > key
self[i+1] = self[i]
i = i-1
end
@sandyxu
sandyxu / workers.rake
Created February 19, 2014 04:39 — forked from karmi/workers.rake
# Rake task to launch multiple Resque workers in development/production with simple management included
require 'resque/tasks' # Require Resque tasks
namespace :workers do
# = $ rake workers:start
#
# Launch multiple Resque workers with the Rails environment loaded,
# so they have access to your models, etc.
@sandyxu
sandyxu / app_store_receipt.txt
Last active December 30, 2015 05:39 — forked from sauloarruda/receipt
Verify in-app payment data on App store & Android market
ewoJInNpZ25hdHVyZSIgPSAiQXBNVUJDODZBbHpOaWtWNVl0clpBTWlKUWJLOEVk
ZVhrNjNrV0JBWHpsQzhkWEd1anE0N1puSVlLb0ZFMW9OL0ZTOGNYbEZmcDlZWHQ5
aU1CZEwyNTBsUlJtaU5HYnloaXRyeVlWQVFvcmkzMlc5YVIwVDhML2FZVkJkZlcr
T3kvUXlQWkVtb05LeGhudDJXTlNVRG9VaFo4Wis0cFA3MHBlNWtVUWxiZElWaEFB
QURWekNDQTFNd2dnSTdvQU1DQVFJQ0NHVVVrVTNaV0FTMU1BMEdDU3FHU0liM0RR
RUJCUVVBTUg4eEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUtEQXBCY0hCc1pT
QkpibU11TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlF
RjFkR2h2Y21sMGVURXpNREVHQTFVRUF3d3FRWEJ3YkdVZ2FWUjFibVZ6SUZOMGIz
SmxJRU5sY25ScFptbGpZWFJwYjI0Z1FYVjBhRzl5YVhSNU1CNFhEVEE1TURZeE5U
SXlNRFUxTmxvWERURTBNRFl4TkRJeU1EVTFObG93WkRFak1DRUdBMVVFQXd3YVVI
@sandyxu
sandyxu / .gitignore
Created November 14, 2013 10:03
git ignore file
# See http://help.github.com/ignore-files/ for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
# git config --global core.excludesfile ~/.gitignore_global
# Ignore bundler config
/.bundle
# Ignore the default SQLite database.