Skip to content

Instantly share code, notes, and snippets.

@3dd13
3dd13 / workless_delayed_job_initializer_mongoid.rb
Created March 13, 2011 15:00
use workless with Delayed Job Mongoid https://github.com/collectiveidea/delayed_job_mongoid https://github.com/lostboy/workless To use: after setting up delayed_job_mongoid and workless, put this file under initialzers directory
Delayed::Worker.max_attempts = 3
Delayed::Backend::Mongoid::Job.send(:include, Delayed::Workless::Scaler) if defined?(Delayed::Backend::Mongoid::Job)
@3dd13
3dd13 / ruby_core_source.rb
Created August 31, 2011 08:01
the reason of ruby_core_source.rb:57 'initilize': not in gzip format (Zlib::GzipFile::Error)
#
# the problem was
# this file was TAR compressed but not TAR.GZ
#
uri_path = "http://ftp.ruby-lang.org/pub/ruby/1.9/" + ruby_dir + ".tar.gz"
Tempfile.open("ruby-src") { |temp|
temp.binmode
@3dd13
3dd13 / updateClearboxTop.js
Created September 20, 2011 18:21
Javascript to update the "top" css style after every scroll event, to solve the mobile browser position:fixed; issue. The function is called only if the client browser (by checking user-agent) is one of the mobile browsers.
var deviceIphone = "iphone";
var deviceIpod = "ipod";
var deviceIpad = "ipad";
var deviceAndroid = "android";
//Initialize our user agent string to lower case.
var uagent = navigator.userAgent.toLowerCase();
function detectUserAgent(deviceName)
{
@3dd13
3dd13 / Gemfile
Created November 27, 2012 08:38
Runing single ruby file on heroku
source 'https://rubygems.org'
@3dd13
3dd13 / ormat_apn_token.rb
Created December 19, 2012 10:15
Convert the apn token collected from iOS to the format apn_on_rails is expecting
# the apn push token you collected from mobile is in this format:
# 00ea74e76a873e8e9c14c2dd2afe3b42abb35148e94042811e2b6985072641f2
#
# but actually, apn_on_rails is expecting this:
# 00ea74e7 6a873e8e 9c14c2dd 2afe3b42 abb35148 e9404281 1e2b6985 072641f2
def format_apn_token(text)
text && text.gsub(/(.{8})(?=.)/, '\1 \2')
end
@3dd13
3dd13 / apple_green_address.rb
Created September 18, 2011 10:03
Scraping the address of "Apple Green" from openrice.com
#
# loading the mechanize library for scraping
# install it if you haven't done it:
# sudo gem install mechanize
#
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://www.openrice.com/english/restaurant/sr2.htm?shopid=32108")
@3dd13
3dd13 / Gulpfile.js
Last active March 12, 2016 20:33 — forked from webdesserts/Gulpfile.js
Adapt the gulp hot reload file and apply to partial.js directory structure. (ignored public folder at the moment)
// NOTE: I previously suggested doing this through Grunt, but had plenty of problems with
// my set up. Grunt did some weird things with scope, and I ended up using nodemon. This
// setup is now using Gulp. It works exactly how I expect it to and is WAY more concise.
var gulp = require('gulp'),
spawn = require('child_process').spawn,
node;
/**
* $ gulp server
* description: launch the server. If there's a server already running, kill it.
@3dd13
3dd13 / controllers.js
Created June 15, 2015 12:33
Testing ngCordova geolocation watchPosition and getCurrentPosition function
.controller('DashCtrl', function($scope, $ionicPlatform, $cordovaGeolocation) {
var watch;
var watchOptions = {
timeout : 5000,
maximumAge: 3000,
enableHighAccuracy: true // may cause errors if true
};
var pollCurrentLocation = function() {
$cordovaGeolocation.getCurrentPosition(watchOptions)
@3dd13
3dd13 / download_open_rice_contact.rb
Created October 19, 2010 08:36
OpenRice.com is a famous restaurant online directory in Hong Kong. Here is a ruby script to grep all the contact information of all shops. at this moment of time, there are around 26K records on the website. this program took ~ 15mins to finish. and
require 'rubygems'
require 'mechanize'
require 'fastercsv'
def get_all_option_values(page, attr_name)
page.search("[name=#{attr_name}]").search("option").map do |opt|
option_value = opt.attribute("value").value
[option_value, opt.text.strip.gsub(/\302\240\302\240/, '')] if option_value && option_value.length > 0
end.compact
end
@3dd13
3dd13 / row_is_cut_in_the_middle_solution.rb
Created February 18, 2011 07:49
overflow / page break examples of Prawn Pdf generation.
# gem "prawn", "0.8.4"
# Sometime there is no enough space for the last table row when it reaches the end of page
Prawn::Document.generate("text_group_overflow_question.pdf") do |pdf|
add_page_break_if_overflow(pdf) do |pdf|
# generating table here
# ...
end
end