Skip to content

Instantly share code, notes, and snippets.

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 November 29, 2011 07:25
Dynamically add CSS link or rule to DOM w/ pure JavaScript
@chrisyip
chrisyip / Monokai.tmTheme
Created May 7, 2012 13:36
Monokai for Sublime Text: markdown supported
<?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 August 7, 2012 17:04
Clone Anything with JavaScript
// 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 October 11, 2012 09:09
A regular expression that validates date.
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 December 14, 2015 10:10
Copy raw photos from iPhoto folder.
#!/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 11:58
Vagrant shell script for LAMP.
#!/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 June 12, 2013 09:57
Base64 Encoder and Decoder shims for client-side. Based on: https://github.com/dankogai/js-base64/
/*
* 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
*/
# 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 December 24, 2015 06:49
a command line tool to help add / delete / list / search hosts file.
#!/usr/bin/env ruby
# encoding: utf-8
require 'optparse'
require 'fileutils'
@options = {}
@hosts_path = '/private/etc/hosts'
OptionParser.new { |opts|