<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zan's Collection of anything useful</title>
	<atom:link href="http://liangzan.net/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://liangzan.net</link>
	<description></description>
	<lastBuildDate>Tue, 09 Mar 2010 03:46:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to shoot yourself in the foot using a functional programming language</title>
		<link>http://liangzan.net/index.php/2010/03/09/how-to-shoot-yourself-in-the-foot-using-a-functional-programming-language/</link>
		<comments>http://liangzan.net/index.php/2010/03/09/how-to-shoot-yourself-in-the-foot-using-a-functional-programming-language/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 03:46:31 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=64</guid>
		<description><![CDATA[While preparing for a presentation on Scala, I added some jokes on the functional languages. Here&#8217;s the original version and the new editions
Erlang
You create a dozen clones of youself, pass the gun to one another in turn to shoot at each other&#8217;s foot
Python
You have to align your foot 10 steps below the gun for it [...]]]></description>
			<content:encoded><![CDATA[<p>While preparing for a presentation on Scala, I added some jokes on the functional languages. Here&#8217;s the <a href="http://www.thealmightyguru.com/Humor/Docs/ShootYourselfInTheFoot.html">original</a> version and the new editions</p>
<p><strong>Erlang</strong><br />
You create a dozen clones of youself, pass the gun to one another in turn to shoot at each other&#8217;s foot</p>
<p><strong>Python</strong><br />
You have to align your foot 10 steps below the gun for it to work</p>
<p><strong>Ruby</strong><br />
You pull the trigger to find popcorns popping out of the gun. Someone somewhere has just made all guns shoot popcorns.</p>
<p><strong>Haskell</strong><br />
Close your eyes and picture a gun in your mind. Think about the foot being shot. Open your eyes. You found your foot shot. No sound. No smell. No one else even noticed.</p>
<p><strong>Scala</strong><br />
You pull the trigger and you got shot. You stab your foot with the gun and you got shot.</p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2010/03/09/how-to-shoot-yourself-in-the-foot-using-a-functional-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selectively load Ruby Facets modules</title>
		<link>http://liangzan.net/index.php/2010/01/12/selectively-load-ruby-facets-modules/</link>
		<comments>http://liangzan.net/index.php/2010/01/12/selectively-load-ruby-facets-modules/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 09:43:39 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=62</guid>
		<description><![CDATA[Ruby facets has a lot of useful libraries. Sometimes you only want to load the ones that you need. Here&#8217;s a little snippet that you can use

Rails won&#8217;t load facets as the &#8216;lib&#8217; param is false. We then load the libraries manually through initializers. This helps when facets unwittingly clobbers some of the other gems [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby <a href="http://facets.rubyforge.org/">facets</a> has a lot of useful libraries. Sometimes you only want to load the ones that you need. Here&#8217;s a little snippet that you can use</p>
<p><script src="http://gist.github.com/275055.js"></script></p>
<p>Rails won&#8217;t load <a href="http://facets.rubyforge.org/">facets</a> as the &#8216;lib&#8217; param is false. We then load the libraries manually through initializers. This helps when <a href="http://facets.rubyforge.org/">facets</a> unwittingly clobbers some of the other gems you are using.</p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2010/01/12/selectively-load-ruby-facets-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing PDFs with Celerity-Culerity and Cucumber</title>
		<link>http://liangzan.net/index.php/2009/12/11/testing-pdfs-with-celerity-culerity-and-cucumber/</link>
		<comments>http://liangzan.net/index.php/2009/12/11/testing-pdfs-with-celerity-culerity-and-cucumber/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 08:42:41 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=57</guid>
		<description><![CDATA[Here&#8217;re the code to test the content of the pdfs. But first you need the pdf-reader gem.

The feature file is above.

Add the code above as a helper file.

And lastly, the steps. Remember to add a @pdf tag to your feature files. 
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;re the code to test the content of the pdfs. But first you need the <a href="http://github.com/yob/pdf-reader">pdf-reader</a> gem.</p>
<p><script src="http://gist.github.com/254067.js"></script></p>
<p>The feature file is above.</p>
<p><script src="http://gist.github.com/254065.js"></script></p>
<p>Add the code above as a helper file.</p>
<p><script src="http://gist.github.com/254064.js"></script></p>
<p>And lastly, the steps. Remember to add a @pdf tag to your feature files. </p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2009/12/11/testing-pdfs-with-celerity-culerity-and-cucumber/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Cucumber to test Paperclip file attachments</title>
		<link>http://liangzan.net/index.php/2009/08/31/using-cucumber-to-test-paperclip-file-attachments/</link>
		<comments>http://liangzan.net/index.php/2009/08/31/using-cucumber-to-test-paperclip-file-attachments/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 15:23:45 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=51</guid>
		<description><![CDATA[I was using thoughtbot&#8217;s paperclip to attach files. I realised that paperclip only provide shoulda macros for test::unit. No cucumber macros? In the end, I got to write it. Its very simple.
The feature is shown here: 
Define your steps:  
As celerity does not have an attach_file method, I got to write my own. You [...]]]></description>
			<content:encoded><![CDATA[<p>I was using thoughtbot&#8217;s <a href="http://github.com/thoughtbot/paperclip/tree/master">paperclip</a> to attach files. I realised that paperclip only provide <a href="http://github.com/thoughtbot/shoulda/tree/master">shoulda</a> macros for test::unit. No <a href="https://github.com/aslakhellesoy/cucumber/tree">cucumber</a> macros? In the end, I got to write it. Its very simple.</p>
<p>The feature is shown here: <script src="http://gist.github.com/178507.js"></script></p>
<p>Define your steps:  <script src="http://gist.github.com/178505.js"></script></p>
<p>As <a href="https://github.com/jarib/celerity/tree">celerity</a> does not have an <strong>attach_file</strong> method, I got to write my own. You could see it&#8217;s not hard at all. Remember to define the <strong>browser</strong> variable.</p>
<p>Last, we have some hooks to clean up the test upload files. Remember to place an <strong>@upload</strong> tag in your scenario.</p>
<p><script src="http://gist.github.com/178501.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2009/08/31/using-cucumber-to-test-paperclip-file-attachments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Email_Spec Integrated with Action_Mailer_Cache_Delivery</title>
		<link>http://liangzan.net/index.php/2009/08/20/email_spec-integrated-with-action_mailer_cache_delivery/</link>
		<comments>http://liangzan.net/index.php/2009/08/20/email_spec-integrated-with-action_mailer_cache_delivery/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 06:47:41 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=49</guid>
		<description><![CDATA[For people using the action mailer cache delivery plugin, you can now add the email_spec plugin. The email_spec plugin provides many wonderful helpers to test your emails. Both plugins are now integrated. To use them you need to install both my forks of the plugins:

action_mailer_cache_delivery
 email_spec

Install them as plugins following the same instructions from the [...]]]></description>
			<content:encoded><![CDATA[<p>For people using the action mailer cache delivery plugin, you can now add the email_spec plugin. The email_spec plugin provides many wonderful helpers to test your emails. Both plugins are now integrated. To use them you need to install both my forks of the plugins:</p>
<ul>
<li><a href="http://github.com/liangzan/action_mailer_cache_delivery/tree/master">action_mailer_cache_delivery</a></li>
<li> <a href="http://github.com/liangzan/email-spec/tree/master">email_spec</a></li>
</ul>
<p>Install them as plugins following the same instructions from the README. Don&#8217;t forget to change the git url!</p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2009/08/20/email_spec-integrated-with-action_mailer_cache_delivery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Troubleshooting an Eclipse PDE Build</title>
		<link>http://liangzan.net/index.php/2009/06/10/troubleshooting-an-eclipse-pde-build/</link>
		<comments>http://liangzan.net/index.php/2009/06/10/troubleshooting-an-eclipse-pde-build/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 06:45:21 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=47</guid>
		<description><![CDATA[
  In this post, I&#8217;ll share what I&#8217;ve learnt trying to run an Eclipse PDE build. The specific version is Eclipse 3.2. This took me a while to get right(a few months in fact!). The key to getting it right is getting The Dependencies right. So let&#8217;s dive in!

Setting up

  I&#8217;m following the [...]]]></description>
			<content:encoded><![CDATA[<p>
  In this post, I&#8217;ll share what I&#8217;ve learnt trying to run an Eclipse PDE build. The specific version is Eclipse 3.2. This took me a while to get right(a few months in fact!). The key to getting it right is getting The Dependencies right. So let&#8217;s dive in!
</p>
<h2>Setting up</h2>
<p>
  I&#8217;m following <a href="http://cubiclemuses.com/cm/blog/2007/pdebuild.html">the example</a> by J Aaron Farr. His example works and is simple enough.
</p>
<p>
  The example code and screencast can be downloaded <a href="http://sourceforge.net/project/showfiles.php?group_id=81506&#038;package_id=231281">here</a>.
</p>
<p>
  If you are following Farr&#8217;s steps, you should end up with 3 directories: builder, features, plugins. You should place all your plugins in the plugins folder, and the features in the features folder. The builder folder can be copied from Farr&#8217;s example. One thing to note is inside the builder folder is a target folder. That contains a copy of Eclipse which is used to build. Make sure that copy has the dependencies(plugins/features) you need.
</p>
<h2>The checklist</h2>
<p>
There&#8217;re lots of things that can go wrong in an Eclipse PDE build. Most times the error messags don&#8217;t tell you clearly what&#8217;s wrong. In my experience, the problems are usually found in the configuration. And it always is a dependency problem.
</p>
<h3>Product</h3>
<p>
The product file is found from your launching plugin.
</p>
<ul>
<li>Does the product contain all of your plugins and their dependencies? Only those plugins/features listed in the product are packaged. So make sure all the things you need are there</li>
<li>Does the build.properties file point to the correct product file?</li>
<li>Does the product contain the features necessary for testing? You need these 2 features org.eclipse.rcp(for launching eclipse) and org.eclipse.test(for testing). Add them as one of the features in the product.</li>
<li>Does the product configuration correct? There&#8217;s the fields like name, id, application, useFeatures found in the attriute line of the product declaration. Make sure these are correct.</li>
</ul>
<h3>build.properties</h3>
<p>
This is one of the configuration files found under builder directory. It is meant for build.xml.
</p>
<ul>
<li>Are the paths correct? Use the full path to make sure everything works first. Switch to relative paths after which.</li>
<li>Is it forward slash or back slash? Ans: its &#8220;/&#8221;</li>
<li>What if I have spaces in the path? Ans: Use double quotes &#8220;&#8221;</li>
</ul>
<p>
For a better explanation, you can try the <a href="http://wiki.eclipse.org/index.php/PDEBuild">eclipse wiki</a>
</p>
<h3>customTarget.xml</h3>
<p>
This is one of the configuration files found under builder directory. It is meant for adding your own ant targets to the build process.
</p>
<ul>
<li>Are u running junit tests? If you do, have you added an ant target task? Is the path correct?</li>
</ul>
<h3>allElements.xml</h3>
<p>
This is one of the configuration files found under builder directory.
</p>
<ul>
<li>Is the name of your feature correct?</li>
</ul>
<h3>Deployment target</h3>
<p>
This is the eclipse that you usually use to build against.
</p>
<ul>
<li>Does it have all the plugins features necessary for the build?</li>
<li>Does it contain only 1 copy of the plugin/feature?(eclipse will always take the newest version of the same plugin. it&#8217;ll cause problems if your build needs the older version)</li>
</ul>
<h3>Build target</h3>
<p>
This is the eclipse target found under builder > target.
</p>
<ul>
<li>Does it have all the plugins features necessary for the build?</li>
<li>Does it contain only 1 copy of the plugin/feature?(eclipse will always take the newest version of the same plugin. it&#8217;ll cause problems if your build needs the older version)</li>
</ul>
<h3>feature.xml for the plugins</h3>
<p>
This is the feature.xml for the feature that contains your plugins.
</p>
<ul>
<li>Is the id correct?</li>
<li>Does it contain all the plugins of your project</li>
<li>Does it have the dependencies listed?</li>
</ul>
<h3>feature.xml for the test plugins</h3>
<p>
This is the feature.xml for the feature that contains your test plugins.
</p>
<ul>
<li>Does it have the required dependency org.apache.ant?</li>
<li>Does it contain the test plugins?</li>
<li>Does it contain org.apache.ant and org.eclipse.core.runtime.compatibility?</li>
</ul>
<h3>General</h3>
<ul>
<li>Is the compiler version correct?</li>
<li>Is Ant and Java configured correctly?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2009/06/10/troubleshooting-an-eclipse-pde-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fly away &#8211; Corrinne May Guitar Chords</title>
		<link>http://liangzan.net/index.php/2008/11/09/fly-away-corrinne-may-guitar-chords/</link>
		<comments>http://liangzan.net/index.php/2008/11/09/fly-away-corrinne-may-guitar-chords/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 15:02:11 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Guitar]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=46</guid>
		<description><![CDATA[
This is a sad sad song. Well it happened to be my best friend&#8217;s favourite. Reminds her of her Mom. Anyway this is for you MF!


F major, capo 1

F                 Am
"When will you be home?" she asks
    [...]]]></description>
			<content:encoded><![CDATA[<p>
This is a sad sad song. Well it happened to be my best friend&#8217;s favourite. Reminds her of her Mom. Anyway this is for you MF!
</p>
<pre>
F major, capo 1

F                 Am
"When will you be home?" she asks
      F                     Am
as we watch the planes take off
   F                 Am                 Dm
We both know we have no clear answer to where my dreams may lead
      F               Am
She's watched me as i crawled and stumbled
F                      Am
As a child, she was my world
    Am                           Dm
And now to let me go, I know she bleeds
                    Am
and yet she says to me

        Dm
You can fly so high
          F
Keep your gaze upon the sky
        Am                          Dm
I'll be prayin every step along the way
     F                   Am                     Dm          Bb
Even though it breaks my heart to know we'll be so far apart
Bb         Am                   Dm
I love you too much to make you stay
Dm             F
Baby fly away

F                  Am
Autumn leaves fell into spring time and
F              Am
Silver-painted hair
  F               Am                 Dm
Daddy called one evening saying "We need you. Please come back"
       F              Am
When I saw her laying in her bed
F             Am
Fragile as a child
  Am                           Dm
Pale just like an angel taking flight
                Am
I held her as I cried

        Dm
You can fly so high
          F
Keep your gaze upon the sky
        Am                          Dm
I'll be prayin every step along the way
     F                   Am                     Dm          Bb
Even though it breaks my heart to know we'll be so far apart
Bb         Am                   Dm
I love you too much to make you stay
Am             F
Baby fly away
Dm
ohh...

Bb         Am                   Dm
I love you too much to make you stay
Dm             F
Baby fly away
</pre>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2008/11/09/fly-away-corrinne-may-guitar-chords/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up a basic project infrastructure with Redmine, Hudson, VSFTP</title>
		<link>http://liangzan.net/index.php/2008/10/23/setting-up-a-basic-project-infrastructure-with-redmine-hudson-vsftp/</link>
		<comments>http://liangzan.net/index.php/2008/10/23/setting-up-a-basic-project-infrastructure-with-redmine-hudson-vsftp/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 09:15:58 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=45</guid>
		<description><![CDATA[Here I would like to share with you the steps to set up the basic project infrastructure.
For a project, there&#8217;re a few tools which are absolutely necessary to function

File Server
Project Wiki
Continuous Integration Server
Bug/Issue Tracking
Source Control

With these features in mind, I have identified the software necessary to provide all these functionality.

Subversion &#8211; Source Control
Redmine &#8211; wiki, [...]]]></description>
			<content:encoded><![CDATA[<p>Here I would like to share with you the steps to set up the basic project infrastructure.</p>
<p>For a project, there&#8217;re a few tools which are absolutely necessary to function</p>
<ul>
<li>File Server</li>
<li>Project Wiki</li>
<li>Continuous Integration Server</li>
<li>Bug/Issue Tracking</li>
<li>Source Control</li>
</ul>
<p>With these features in mind, I have identified the software necessary to provide all these functionality.</p>
<ul>
<li>Subversion &#8211; Source Control</li>
<li>Redmine &#8211; wiki, issue tracking, forums, repository viewing</li>
<li>Hudson &#8211; continuous integration</li>
<li>VSFTP &#8211; FTP file server</li>
</ul>
<p>Ubuntu is chosen cos Linux is more stable, its free, its much easier to install stuff in it. But the real reason is cos I&#8217;m a Linux geek.</p>
<h2>What do you need to learn?</h2>
<p>All the work is done on the command line. So you need to be familiar with UNIX shell commands. Another thing is you&#8217;ll be editing text files most of the time. Therefore you have to learn one of the UNIX text editors.</p>
<p><a href="http://cb.vu/unixtoolbox.xhtml">Basic UNIX commands</a></p>
<h2>Unix text editors</h2>
<ul>
<li><a href="http://www.gnu.org/software/emacs/emacs.html">Emacs</a></li>
<li><a href="http://www.vim.org/">Vim</a></li>
<li><a href="http://www.udel.edu/topics/software/general/editors/unix/pico/">Pico</a></li>
<li><a href="http://www.nano-editor.org/">nano</a></li>
</ul>
<h2>What tools do you need?</h2>
<ul>
<li><a href="www.chiark.greenend.org.uk/~sgtatham/putty/">Putty SSH client</a></li>
<li>Hardware &#8211; any old computer will do</li>
<li>OS &#8211; <a href="www.ubuntu.com/products/whatisubuntu/serveredition">Ubuntu Linux Server Edition</a></li>
</ul>
<h2>Setting up the server OS</h2>
<ul>
<li><a href="http://www.cyberciti.biz/tips/howot-install-ubuntu-linux-ssh-server.html">OpenSSH Server</a></li>
<li><a href="http://articles.slicehost.com/2008/4/25/ubuntu-hardy-setup-page-1">Ubuntu Initial Setup</a></li>
<li><a href="http://ubuntuforums.org/showthread.php?t=400693">Fix your IP</a></li>
</ul>
<h2>Redmine Issue Tracking Server</h2>
<ul>
<li><a href="http://articles.slicehost.com/2008/4/30/ubuntu-hardy-ruby-on-rails">Ruby on Rails</a></li>
<li><a href="http://articles.slicehost.com/2008/7/8/ubuntu-hardy-installing-mysql-with-rails-and-php-options">MySQL</a></li>
<li>MySQL Ruby Gems</li>
<li><a href="http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby">Thin Web App Server</a></li>
<li><a href="http://www.redmine.org/wiki/1/RedmineInstall">Redmine</a></li>
</ul>
<h2><a href="http://articles.slicehost.com/subversion">Subversion</a></h2>
<h2><a href="http://www.cyberciti.biz/faq/ubuntu-vsftpd-ftp-service-server/">VSFTP FTP Server</a></h2>
<h2>Hudson Continuous Integration Server</h2>
<ul>
<li><a href="http://java.sun.com/javase/downloads/index.jsp">Java JDK</a></li>
<li><a href="https://hudson.dev.java.net/servlets/ProjectDocumentList">Hudson</a></li>
</ul>
<h2><a href="http://maven.apache.org/download.html">Maven</a></h2>
<h2>Static Code Analysis Tools</h2>
<ul>
<li><a href="http://pmd.sourceforge.net">PMD</a></li>
<li><a href="http://findbugs.sourceforge.net">findbugs</a></li>
<li><a href="http://cobertura.sourceforge.net">Cobertura</a></li>
</ul>
<h2>Continuous feedback devices</h2>
<ul>
<li><a href="http://www.x10.com/automation/firecracker.htm">X10 firecracker</a></li>
<li><a href="http://www.arduino.cc/">Arduino</a></li>
</ul>
<h2>How-Tos</h2>
<ul>
<li><a href="http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc">Pragmatic Automation</a></li>
<li><a href="http://hudson.gotdns.com/wiki/display/HUDSON/Hudson+Build+Status+Lava+Lamps">Hudson Lava Lamps</a></li>
<li><a href="http://www.aboutdebian.com/x10.htm">Debian X10 package</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-ap11146/index.html">IBM Continuous Integration</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2008/10/23/setting-up-a-basic-project-infrastructure-with-redmine-hudson-vsftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plucking patterns for 让夜轻轻落下</title>
		<link>http://liangzan.net/index.php/2008/10/18/plucking-patterns-for-%e8%ae%a9%e5%a4%9c%e8%bd%bb%e8%bd%bb%e8%90%bd%e4%b8%8b/</link>
		<comments>http://liangzan.net/index.php/2008/10/18/plucking-patterns-for-%e8%ae%a9%e5%a4%9c%e8%bd%bb%e8%bd%bb%e8%90%bd%e4%b8%8b/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 03:21:04 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Guitar]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=44</guid>
		<description><![CDATA[This is a very old song. Its from the &#8216;Xinyao&#8217; era in &#8217;80s Singapore
where its a mini Renaissance of local Chinese music. I love songs from that era. Here is one of them. You can catch the original song here.
The plucking patterns are improvised by me. For those new to guitar music notation:
p = thumb(duh&#8230;)
i [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very old song. Its from the &#8216;Xinyao&#8217; era in &#8217;80s Singapore<br />
where its a mini Renaissance of local Chinese music. I love songs from that era. Here is one of them. You can catch the original song <a href="http://www.youtube.com/watch?v=JJ7r8WbYclI">here</a>.</p>
<p>The plucking patterns are improvised by me. For those new to guitar music notation:</p>
<p>p = thumb(duh&#8230;)<br />
i = index finger(2nd finger)<br />
m = middle finger(3rd finger)<br />
a = ring finger(4th finger)</p>
<p>让夜轻轻落下</p>
<p>词曲：梁文福 Original Key: Bb Capo:3, play G</p>
<p>Pattern 1: p i m a m i</p>
<p>Pattern 2: p i m</p>
<p>Pattern 3: p i m a m i m a</p>
<pre>
       1          1          2      2    2 2
       G          Bm         C      D7   G G7
等着黑夜轻轻轻轻落下，将你我来覆盖，等着黎明的安排。

2     2        2    2       3       3
C     D7       Bm   Em     Am7      D7
过去已经过去，未来未必存在，让我们继续相信现在。

1     3         3         3
G     Em7       Bm7
对你从来不改变，千种柔情说着一种语言。

   3         3         3           3
   C         G        Am7          D7
昙花的笑靥，星光的乍现，是我羞涩散乱的思念。

1     3         3         3
G     Em7       Bm7
你也从来不改变，一种沉默说着千种亏欠。

   3         3         3            3
   C         G        Am7           D7
紧紧拥抱我，轻轻放开我，像放开无处安放的依眷。

   1      3        3           3
   G      D        Em          Bm
曾经我将无助的爱情，静静枕在你的臂弯里。

2    2    2     2    3           3
C    D7   Bm    Em   Am7         D7
以为它将为我阻挡风雨，共我面对寂寞的潮汐。

      1        3        3           3
      G        D        Em          Bm
可是在你宽阔温暖的胸怀里，总是听到冷冷的叹息。

2    2    2   2    3          3   2  2
C    D7  Bm  Em    Am         D7  G G7
你那不屑说谎的眼睛，始终教我自己回避。

1     3         2    2      2 2
C     Bm        C    D7     G G7
也许已经不是爱，只是一种坚持的情怀。

1     3           3           3
C     Bm          C           D7
也许依然还有爱，也许是慢慢生长的悲哀。

       1          1          2      2    2 2
       G          Bm         C      D7   G G7
等着黑夜轻轻轻轻落下，将你我来覆盖，等着黎明的安排。

2     2        2    2       3       3
C     D7       Bm   Em     Am7      D7
过去已经过去，未来未必存在，让我们继续相信现在。

      1        3        3           3
      G        D        Em          Bm
可是在你宽阔温暖的胸怀里，总是听到冷冷的叹息。

2    2    2  2     3          3   2  2
C    D7  Bm  Em    Am         D7  G G7
你那不屑说谎的眼睛，始终教我自己回避。</pre>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2008/10/18/plucking-patterns-for-%e8%ae%a9%e5%a4%9c%e8%bd%bb%e8%bd%bb%e8%90%bd%e4%b8%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Guitar Chords for The Birthday Song &#8211; Corrinne May</title>
		<link>http://liangzan.net/index.php/2008/10/06/guitar-chords-for-the-birthday-song-corrinne-may/</link>
		<comments>http://liangzan.net/index.php/2008/10/06/guitar-chords-for-the-birthday-song-corrinne-may/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 14:03:58 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Guitar]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=43</guid>
		<description><![CDATA[The Birthday Song &#8211; Corrinne May
Here&#8217;s another set of self written chords. I wrote this cos someone wanted to play this song for her best friend. And I thought that&#8217;s a worthy cause. So here goes&#8230;

G
Don't worry about that extra line
       Em
That's creeping up upon your face
     G
It's just a part of nature's way
   Em                        [...]]]></description>
			<content:encoded><![CDATA[<p>The Birthday Song &#8211; Corrinne May</p>
<p>Here&#8217;s another set of self written chords. I wrote this cos someone wanted to play this song for her best friend. And I thought that&#8217;s a worthy cause. So here goes&#8230;</p>
<pre>
G
Don't worry about that extra line
       Em
That's creeping up upon your face
     G
It's just a part of nature's way
   Em                        D
To say you've grown a little more
G
Trees have rings and thicker branches
Em
Kids shoes get a little tighter
      G                            Bm
Every year we're getting closer to who we're gonna be
     G                              Bm                    D
It's time to celebrate the story of how you've come to be

      G                  D  
Happy birthday my friend
          Bm
Here's to all the years we've shared together
Em                D
All the fun we've had
              G
You're such a blessing
       D7
Such a joy in my life
        G
May the good Lord bless you
        D                        G
And may all your dreams come true

G
So light a candle on your cake
    Em
For every smile you've helped create
    G
For every heart and every soul
       Em                     D
You've known to grow a little more
  G
A few more pounds, a little more grey
      Em
Don't count the years just count the way
   G                              Bm   
It takes a little time to go from water into wine
      G                           Bm                D
Don't ever lose the wonder of the child within your eyes

      G                  D  
Happy birthday my friend
          Bm
Here's to all the years we've shared together
Em                D
All the fun we've had
              G
You're such a blessing
       D7
Such a joy in my life
        G
May the good Lord bless you
        D                        G
And may all your dreams come true</pre>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2008/10/06/guitar-chords-for-the-birthday-song-corrinne-may/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
