Skip to content

Instantly share code, notes, and snippets.

View ihower's full-sized avatar
🎯
Focusing

Wen-Tien Chang ihower

🎯
Focusing
View GitHub Profile
Web Developer 軟體工程師
你對網路、行動科技及樂活抱有熱情嗎?
你熱愛網路與行動科技帶來的變化且對於參與 Mobile Health 領域的創業公司有興趣嗎?
我們 Passion Bean 熱情豆目前正在招募 Web Developer!
你將負責 backend web service 的技術開發,
你將與知名的 Ruby on Rails 以及 iOS 開發者一同工作,
我們會提供優良的硬體設備以及舒適的工作空間,讓你能夠發揮最大的戰力。
namespace :deploy do
namespace :assets do
task :precompile, :roles => :web, :except => { :no_release => true } do
from = source.next_revision(current_revision)
if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
else
logger.info "Skipping asset pre-compilation because there were no asset changes"
end
@ihower
ihower / gist:1513416
Created December 23, 2011 06:51
rails/ruby/jruby/passenger/Trinidad benchmark
= httperf --server localhost --port 3000 --uri /render_text --num-conns 500 --num-calls 20
== Ruby 1.9.2/WEBrick
Request rate: 329.5 req/s (3.0 ms/req)
Request rate: 334.6 req/s (3.0 ms/req)
== Ruby 1.9.2/Passenger
Request rate: 539.5 req/s (1.9 ms/req)
Request rate: 543.1 req/s (1.8 ms/req)
@ihower
ihower / fix_resque_constantize.rb
Created September 11, 2011 03:23
fix_resque_constantize.rb
module Resque
module Helpers
# Given a camel cased word, returns the constant it represents
#
# constantize('JobName') # => JobName
def constantize(camel_cased_word)
camel_cased_word = camel_cased_word.to_s
if camel_cased_word.include?('-')
desc 'Runs test:units, test:functionals, test:integration together (also available: test:benchmark, test:profile, test:plugins)'
task :test do
tests_to_run = ENV['TEST'] ? ["test:single"] : %w(test:units test:functionals test:integration)
errors = tests_to_run.collect do |task|
begin
Rake::Task[task].invoke
nil
rescue => e
{ :task => task, :exception => e }
end
class Fixnum
alias_method :old_to_s, :to_s
def to_s
old_to_s
end
end
@ihower
ihower / gist:940088
Created April 25, 2011 02:39
parsing XML chunk by chunk
# <xml version="1.0" encoding="UTF-8">
# <DataFeeds>
# <Item>
# ....
# </Item>
# <Item>
# ...
# </Item>
# </DataFeeds>
require 'rubygems'
require 'nokogiri'
require 'fastercsv'
doc = Nokogiri::HTML( File.read("timesheet.txt") )
memo = {}
elapsed = {}
doc.css('div').each do |div|
if div.attributes["class"].value =~ /(.*)-memo$/
function git_branch {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return;
echo "("${ref#refs/heads/}") ";
}
function git_since_last_commit {
now=`date +%s`;
last_commit=$(git log --pretty=format:%at -1 2> /dev/null) || return;
seconds_since_last_commit=$((now-last_commit));
minutes_since_last_commit=$((seconds_since_last_commit/60));