Skip to content

Instantly share code, notes, and snippets.

@mocheng
mocheng / Change in macrolib.xml
Created July 22, 2011 12:03
Customize YUIBuilder to integrate mustache
<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 / override
Created June 22, 2011 11:25
override object method and recover it.
var foo = obj.foo;
obj.foo = function() {
// do something
obj.foo = foo;
obj.foo(arguments);
};
@mocheng
mocheng / index.html
Created June 9, 2011 10:14
Simple MVC demo in Node.js
<!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 / escapeHTML.1.js
Created May 10, 2011 02:38
Different Implementation of escapeHTML
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 / demoMouseOut.html
Created February 28, 2011 06:59
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.
<!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 / algorithm.php
Created February 17, 2011 06:44 — forked from ryanflorence/algorithm.php
Solution and forked from https://gist.github.com/830201
<?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 / template.js
Created February 14, 2011 02:40
Simple template function to replace pattern in string with object properties or function returned value.
/**
* 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}'
*
@mocheng
mocheng / getHost.js
Created February 13, 2011 01:43
With the help of regular expression, host name can be extracted from URL string in two lines.
/**
* extract host name from URL string.
*/
function getHost(url) {
var m = url.match(/^https?:\/\/([^\/:\d]+)/);
return m && m[1];
}