Skip to content

Instantly share code, notes, and snippets.

Avatar
🎮

Chris Yip chrisyip

🎮
View GitHub Profile
View offscreen_preload.js
window.onload = function(){
var doc = document
, img = doc.createElement('img')
, div = doc.createElement('div')
, body = doc.getElementsByTagName('body')[0];
img.className = 'preload';
img.style.cssText = ';position:absolute;top:-999em;left:-999em;width:0;height:0;visibility:hidden;';
// ajax loaded or predefined img list
var arr = imgList
, str
@chrisyip
chrisyip / append-css-link-or-rule.js
Created Nov 29, 2011
Dynamically add CSS link or rule to DOM w/ pure JavaScript
View append-css-link-or-rule.js
@chrisyip
chrisyip / Monokai.tmTheme
Created May 7, 2012
Monokai for Sublime Text: markdown supported
View Monokai.tmTheme
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Monokai</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
@chrisyip
chrisyip / clone_anythings.js
Created Aug 7, 2012
Clone Anything with JavaScript
View clone_anythings.js
// http://davidwalsh.name/javascript-clone
function clone(src) {
function mixin(dest, source, copyFunc) {
var name, s, i, empty = {};
for(name in source){
// the (!(name in empty) || empty[name] !== s) condition avoids copying properties in "source"
// inherited from Object.prototype. For example, if dest has a custom toString() method,
// don't overwrite it with the toString() method that source inherited from Object.prototype
s = source[name];
if(!(name in dest) || (dest[name] !== s && (!(name in empty) || empty[name] !== s))){
@chrisyip
chrisyip / Date Validation Expression.js
Created Oct 11, 2012
A regular expression that validates date.
View Date Validation Expression.js
var re = /^(\d{4})[-\/\.]{0,1}(?:(?:(11|0?[469])[-\/\.]?([12]\d|30|0?[1-9]))|(?:(1[02]|0?[13578])[-\/\.]{0,1}([1-2]\d|3[01]|0?[1-9]))|(?:(0?2)[-\/\.]{0,1}(2[1-9]|1\d|0?[1-9])))$/;
// test
[
// valid dates
'2012-4-21',
'2012-04-21',
'2012-5-1',
'2012-05-31',
'2012-11-21',
@chrisyip
chrisyip / copy_iPhoto.rb
Last active Dec 14, 2015
Copy raw photos from iPhoto folder.
View copy_iPhoto.rb
#!/usr/bin/env ruby
# encoding: utf-8
require 'optparse'
require 'fileutils'
def get_photo (path)
photos = []
if File.directory?(path) then
Dir[path + '/*'].each { |path|
@chrisyip
chrisyip / vagrant-lamp.sh
Created May 8, 2013
Vagrant shell script for LAMP.
View vagrant-lamp.sh
#!/usr/bin/env bash
apt-get update
echo mysql-server-5.5 mysql-server/root_password password PASSWORD | debconf-set-selections
echo mysql-server-5.5 mysql-server/root_password_again password PASSWORD | debconf-set-selections
apt-get install -y mysql-common mysql-server mysql-client
apt-get install -y apache2
@chrisyip
chrisyip / base64.js
Created Jun 12, 2013
Base64 Encoder and Decoder shims for client-side. Based on: https://github.com/dankogai/js-base64/
View base64.js
/*
* Base64 Encoder and Decoder shims for client-side.
* Based on: https://github.com/dankogai/js-base64/
*
* Licensed under the MIT license.
* http://opensource.org/licenses/mit-license
*
* References:
* http://en.wikipedia.org/wiki/Base64
*/
View http_request_interceptor.coffee
# http://docs.angularjs.org/api/ng.$http
#
# - display loading effect
# - do other jobs before request start
# - ...
angular
.module('httpRequestServices', [])
.config(['$httpProvider', ($httpProvider) ->
@chrisyip
chrisyip / hosts.rb
Last active Dec 24, 2015
a command line tool to help add / delete / list / search hosts file.
View hosts.rb
#!/usr/bin/env ruby
# encoding: utf-8
require 'optparse'
require 'fileutils'
@options = {}
@hosts_path = '/private/etc/hosts'
OptionParser.new { |opts|