<?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>Mon, 26 Jul 2010 10:27:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Adding rvm to zsh prompt</title>
		<link>http://liangzan.net/index.php/2010/07/26/adding-rvm-to-zsh-prompt/</link>
		<comments>http://liangzan.net/index.php/2010/07/26/adding-rvm-to-zsh-prompt/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 10:23:23 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[zsh]]></category>
		<category><![CDATA[rvm]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=72</guid>
		<description><![CDATA[Here&#8217;s a simple way to add rvm to your zsh prompt. I think it should work for bash too. It&#8217;ll only show when rvm is in use. And here&#8217;s how it looks. [URL=http://img252.imageshack.us/i/rvmzshprompt.png/][IMG]http://img252.imageshack.us/img252/1047/rvmzshprompt.png[/IMG][/URL]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a simple way to add <a href="http://rvm.beginrescueend.com/">rvm</a> to your <a href="http://www.zsh.org/">zsh</a> prompt. I think it should work for <a href="http://www.gnu.org/software/bash/">bash</a> too.</p>
<p><script src="http://gist.github.com/490372.js"></script></p>
<p>It&#8217;ll only show when rvm is in use. And here&#8217;s how it looks.</p>
<p><script src='http://img252.imageshack.us/shareable/?i=rvmzshprompt.png&#038;p=tl' type='text/javascript'></script><noscript>[URL=http://img252.imageshack.us/i/rvmzshprompt.png/][IMG]http://img252.imageshack.us/img252/1047/rvmzshprompt.png[/IMG][/URL]</noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2010/07/26/adding-rvm-to-zsh-prompt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test for blank elements with Culerity-Cucumber</title>
		<link>http://liangzan.net/index.php/2010/04/07/test-for-blank-elements-with-culerity-cucumber/</link>
		<comments>http://liangzan.net/index.php/2010/04/07/test-for-blank-elements-with-culerity-cucumber/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 07:13:30 +0000</pubDate>
		<dc:creator>zan</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[cucumber culerity rails]]></category>

		<guid isPermaLink="false">http://liangzan.net/?p=69</guid>
		<description><![CDATA[How to test for blank elements when using culerity]]></description>
			<content:encoded><![CDATA[<p>When you need to test for blank elements on Culerity, it is better to parse the html. Using Celerity helper methods such as $browser.button will return a Culerity::RemoteObjectProxy object. It does not tell you if it found an element or not. It is a limitation of Culerity. To work around it try this:</p>
<p><script src="http://gist.github.com/358616.js"></script></p>
<p>You can use the above code in the step definitions. </p>
]]></content:encoded>
			<wfw:commentRss>http://liangzan.net/index.php/2010/04/07/test-for-blank-elements-with-culerity-cucumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 [...]]]></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 [...]]]></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>2</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 [...]]]></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 example by [...]]]></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 F Am as we watch the planes take off F Am Dm We both know we [...]]]></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 [...]]]></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>
	</channel>
</rss>
