Skip to content

Instantly share code, notes, and snippets.

@mocheng
mocheng / getHost.js
Created Feb 13, 2011
With the help of regular expression, host name can be extracted from URL string in two lines.
View getHost.js
/**
* extract host name from URL string.
*/
function getHost(url) {
var m = url.match(/^https?:\/\/([^\/:\d]+)/);
return m && m[1];
}
@mocheng
mocheng / template.js
Created Feb 14, 2011
Simple template function to replace pattern in string with object properties or function returned value.
View template.js
/**
* Simple template function.
*
* For each pattern in argument template, it is replaced with actual property from argument data.
* t('{greeting} world', {greeting: 'hello'}) === 'hello world'
*
* Sequence of property in argument data doesn't matter:
* t('{g} {x}', {g: '{o}', o: 'x'})) === '{o} {x}'
* t('{g} {x}', {o: 'x', g: '{o}'})) === '{o} {x}'
*
View algorithm.php
<?php
$arr = array(
'Color' => array('Red', 'Blue'),
'Size' => array('Regular', 'Large'),
'Material' => array('Metalic', 'Nylon')
);
function magic_algorithm($arr){
function cartesian_product($arrays) {
@mocheng
mocheng / demoMouseOut.html
Created Feb 28, 2011
In YUI pre-2.8.0, there is no "mouseleave" event. So, it is pretty awkward to detect whether mouse is moving out of a element with nested children nodes.
View demoMouseOut.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Test</title>
<link rel="stylesheet" type="text/css" href="/yui/assets/yui.css?v=3" >
<script src="http://yui.yahooapis.com/combo?2.7.0/build/yahoo-dom-event/yahoo-dom-event.js"</script>
<!-- Browser History Manager source file -->
<style type="text/css" media="screen">
@mocheng
mocheng / escapeHTML.1.js
Created May 10, 2011
Different Implementation of escapeHTML
View escapeHTML.1.js
function escapeHTML(s) {
return s.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g,'&lt;').replace(/"/g, '&quot').replace(/'/g,'&#x27;').replace(/\//g,'&#x2F;');
}
@mocheng
mocheng / index.html
Created Jun 9, 2011
Simple MVC demo in Node.js
View index.html
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>MVC Demo</title>
</head>
<body>
{{name}} is {{title}}.
</body>
</html>
@mocheng
mocheng / override
Created Jun 22, 2011
override object method and recover it.
View override
var foo = obj.foo;
obj.foo = function() {
// do something
obj.foo = foo;
obj.foo(arguments);
};
@mocheng
mocheng / Change in macrolib.xml
Created Jul 22, 2011
Customize YUIBuilder to integrate mustache
View Change in macrolib.xml
<copy file="${builddir}/files/moduletemplate.txt" tofile="@{file}" overwrite="true">
<filterset>
<filter token="CODE" value="${@{module}-@{file}-code}" />
<filter token="YUIVAR" value="${yui.variable}" />
<filter token="MODULE" value="@{module}" />
<filter token="DETAILS" value="${@{module}-details}" />
<filter token="VERSION" value="${component.version}" />
<filter token="MUSTACHE_TEMPLATE" value="${component.mustache.template}" />
</filterset>
</copy>
@mocheng
mocheng / .htaccess
Created Feb 13, 2012
.htaccess for CodeIgniter
View .htaccess
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|img|style|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
@mocheng
mocheng / dev.conf
Created Feb 16, 2012
Setup of dev/test/prod environment
View dev.conf
<VirtualHost *>
ServerName xxx.xxx.com
DocumentRoot "/var/www/html"
DirectoryIndex index.php
SetEnv XXX_ENV "development"
</VirtualHost>