<?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>web(cslai) &#187; Project</title>
	<atom:link href="http://cslai.coolsilon.com/category/project/feed/" rel="self" type="application/rss+xml" />
	<link>http://cslai.coolsilon.com</link>
	<description>Findings and Notes in Web Development</description>
	<lastBuildDate>Tue, 06 Sep 2011 08:15:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>New directory structure</title>
		<link>http://cslai.coolsilon.com/2010/06/27/new-directory-structure/</link>
		<comments>http://cslai.coolsilon.com/2010/06/27/new-directory-structure/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 15:58:31 +0000</pubDate>
		<dc:creator>Jeffrey04</dc:creator>
				<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[base-kite]]></category>
		<category><![CDATA[symlink]]></category>
		<category><![CDATA[theme development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cslai.coolsilon.com/?p=186</guid>
		<description><![CDATA[While the previous file structure works well, I decided to tune some details before deploying the latest WordPress release. Besides that, I also started a new theme development project after my last theme which was developed more than 2 years ago. Thankfully, everything seems to work so far. The main reason behind the re-organization of [...]]]></description>
			<content:encoded><![CDATA[<p>While the previous file structure works well, I decided to tune some details before deploying the latest WordPress release. Besides that, I also started a new theme development project after my last theme which was developed more than 2 years ago. Thankfully, everything seems to work so far.</p>
<p><span id="more-186"></span></p>
<p>The main reason behind the re-organization of files is to stop putting everything together within wp-content folder. As I am using <acronym title="Subversion">SVN</acronym> to manage my WordPress files, I feel more secured if I have less files changed / modified / added to my working copy. The previous structure was designed to store everything, including things are not meant to be shared among sites (installations) like attachments within wp-content folder.</p>
<p>Besides, although putting in everything within the same wp-content folder sounds like a good idea, but what if I want to create yet another new site (installation) for somebody which I don&#8217;t feel like sharing plugins and themes to this new site? After digging in the codex for some time, I found this <a href="http://codex.wordpress.org/Editing_wp-config.php">guide</a> that guides me how to further customize WordPress folder path very useful.</p>
<p>So the structure for a site now looks like this</p>
<pre>
/
|-scripts/ < - where I store my shared scripts
|-|-wordpress/ <- my wordpress, obviously
|-|-|-www/ <- my wordpress working copy
|-|-|-content/ <- new wp-content folders
|-|-|-|-site-id/ <- new wp-content folders for $site_id
|-|-|-|-|-plugins/
|-|-|-|-|-themes/
|-public_html/ <- my public folder, links to /scripts/wordpress/www
|-|-wp-site/ <- new wp-content folder, links to /scripts/wordpress/content/site-id
</pre>
<p>So now visitors of this blog should not be able to view attachment for my other blogs. </p>
<p>The deployed new theme in development is actually my current weekend project. As you can see, there's no color scheme being applied to it at the moment. I am now focusing on completing the basic features and the basic template files before being able to further customizing the color scheme.</p>
<p>Just in case if anyone is interested in this new theme, it can actually be forked via my bitbucket <a href="http://www.bitbucket.org/jeffrey04/base-kite">repository</a>. I have not actually decide what license to be used, but most probably <acronym title="General Public License">GPL</acronym> as WordPress would probably requires. If there's any problem regarding this new theme, please do not hesitate to post a bug report @ the <a href="http://www.bitbucket.org/jeffrey04/base-kite/issues?status=new&#038;status=open">issue tracker</a>.</pre>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://cslai.coolsilon.com/2010/06/27/new-directory-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gotta start working</title>
		<link>http://cslai.coolsilon.com/2008/09/20/gotta-start-working/</link>
		<comments>http://cslai.coolsilon.com/2008/09/20/gotta-start-working/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 04:12:52 +0000</pubDate>
		<dc:creator>Jeffrey04</dc:creator>
				<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://cslai.coolsilon.com/?p=54</guid>
		<description><![CDATA[After delaying for quite some time, I think I should start the project before I get bored with it. The project will be either hosted on this current domain (coolsilon.com) at least for now and will probably move to another domain if needed. The site will be either a blog aggregator or just a simple [...]]]></description>
			<content:encoded><![CDATA[<p>After delaying for quite some time, I think I should start the project before I get bored with it. The project will be either hosted on this current domain (coolsilon.com) at least for now and will probably move to another domain if needed. The site will be either a blog aggregator or just a simple article submission site that works kinda like <a href="http://digg.com">digg</a> / <a href="http://reddit.com">reddit</a>, however, to be promoted to the frontpage the submission would have to impress the opposite group.</p>
<p><span id="more-54"></span></p>
<p>Yes, you heard it right, the user will be divided into groups as soon as they are registered to the site. Whenever he/she submits something to the site, the other group will have to decide whether it should be promoted to the front page. To define this site in a question, that would be &#8216;Why the opposite group should vote up my article?&#8217;. </p>
<p>The project will be built using PHP+MySQL (I like postgreSQL, but it is difficult to find a host offering postgreSQL 8.x, expecially in Malaysia), for front-end logic, it would probably be built using either Prototype/jQuery (I use YUI at work but it is too heavy for a small project like this although I like YUI a lot). As I am not a fan of convention over configuration, so the project will not built upon those rails-inspired framework. Therefore, I will be using Zend Framework and Doctrine to do some of the work.</p>
<p>Besides what the framework provides, I would also have to develop some components if they are not available in ZF. In a check list, they would be:</p>
<ul>
<li>Form widget generation library (I think Zend has this already)</li>
<li>FSM-based workflow</li>
</ul>
<p>And the remaining tasks in the to-do list are</p>
<ul>
<li>Find a better local webhost</li>
<li>Draft the initial database structure</li>
<li>Cleanup my svn repo in unfuddle</li>
<li>Site design</li>
<li>Decide whether to use OpenId (recently became an option to me after seeing how it is implemented in <a href="http://stackoverflow.com">stackoverflow</a>) / self developed login mechanism</li>
</ul>
<p>The initial version of the site will be in chinese (so why should I bother to write this post in english???) and if everything goes well the site will be eventually offering more languages. So beginning this week, there will be at least one post on the update of the project on both this blog and my <a href="http://jeff.coolsilon.com/">other blog</a>.</p>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://cslai.coolsilon.com/2008/09/20/gotta-start-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real Life Enterprise Class Website Development</title>
		<link>http://cslai.coolsilon.com/2008/05/28/real-life-enterprise-class-website-development/</link>
		<comments>http://cslai.coolsilon.com/2008/05/28/real-life-enterprise-class-website-development/#comments</comments>
		<pubDate>Wed, 28 May 2008 13:59:17 +0000</pubDate>
		<dc:creator>Jeffrey04</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://cslai.coolsilon.com/?p=44</guid>
		<description><![CDATA[Recently I am involved in developing some small modules for a enterprise class website using CodeIgniter (CI). There was no restriction given on which framework should I use for the development and I chose CI as I learned a bit on it (when I was considering whether to shift my personal development project). Of course [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I am involved in developing some small modules for a enterprise class website using <a href="http://www.codeigniter.com/">CodeIgniter</a> (CI). There was no restriction given on which framework should I use for the development and I chose CI as I learned a bit on it (when I was considering whether to shift my personal development project). Of course there are other reasons why I chose to learn CI, for example the superior documentation and screencasts available.</p>
<p><span id="more-44"></span></p>
<p>Somehow the Technical Director prefers CI over Symphony (as my colleague, also a new staff member like me, was working with Symphony at the same time as I was developing my first project) which I don&#8217;t have any idea why. Then he made a decision to choose CI as the new framework to be used for future projects, well, at least for the particular project which we are still working on. The reason for the switch from internal framework to another framework like CI is that their internal framework was written for PHP4 and they want to switch to PHP5. </p>
<p>Their internal framework was very well done, at least from what my Technical Director showed. They have their own database abstraction layer, a CRUD application generator, Object-Relational Mapping etc. that really helps building an application fast. By comparing to their framework, I find CI although quite well done as well but it is no way near as good as the internal framework. Then I went looking around to find some plugins for the CI to implement some of the mentioned features above. Then I found <a href="http://rabbitforms.com/">Rabbit-Forms</a> for CRUD application generator and form generation, and <a href="http://www.cibase.info/index.php/code/details/22">Ignited Record</a> for proper ActiveRecord support.</p>
<p>However, I found Rabbit-Forms very restrictive and decided to write a simple form generator and CRUD application generator. Although the final product may not be good enough, but I certainly enjoyed and learned a lot through actually developing it.</p>
<p>These few days I am picking up Drupal, a content management system (CMS). Drupal is a very interesting system where one can almost build any website as long as it is community driven with it. However, there are a lot of things to learn to make sure you are not screwing your installation. I am extremely amazed by the way they implement the plugin system. Although it is a procedural system, but as my Technical Director says there are many <a href="http://api.drupal.org/api/file/developer/topics/oop.html/5">object oriented concepts being implemented</a>. Besides that, with plugins like CCK one can even do CRUD application with Drupal (although debugging will be extremely painful IMHO). There are a lot of fun stuff in Drupal for example the form generator, the hooking system, access control and of course their nearly perfect documentation (somehow i prefer it than YUI&#8217;s documentation).</p>
<p>Besides that, I am also doing some personal reading on Test Driven Development (TDD) and is currently focusing on unit testing PHP scripts with simpletest. Many developers who practices TDD claimed that TDD helps increasing the productivity. However after reading many documents and I am still don&#8217;t have the idea how to set up tests. Guess I would have to find out some examples elsewhere.</p>
<p>I only realize that my software design really sucks after getting involved in a real life development project and is currently doing a lot of readings to improve my design skill. So the main impact made to my personal project is that the project is currently on hold indefinitely until I feel that I am ready and want to practice what I have learnt these few weeks.</p>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://cslai.coolsilon.com/2008/05/28/real-life-enterprise-class-website-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What a WonderFOOL Life</title>
		<link>http://cslai.coolsilon.com/2008/04/02/what-a-wonderfool-life/</link>
		<comments>http://cslai.coolsilon.com/2008/04/02/what-a-wonderfool-life/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 04:26:05 +0000</pubDate>
		<dc:creator>Jeffrey04</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[April Fool]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Rick Roll]]></category>

		<guid isPermaLink="false">http://cslai.coolsilon.com/?p=41</guid>
		<description><![CDATA[I have just re-started to find myself a job as my work in mybloggercon almost come to an end (after helping them to set up an April Fool Prank). I have sent some enquiry letters to apply for a job in web-development field mostly involves PHP. I prefer PHP over ASP.NET because I can have [...]]]></description>
			<content:encoded><![CDATA[<p>I have just re-started to find myself a job as my work in <a href="http://www.mybloggercon.com/">mybloggercon</a> almost come to an end (after helping them to set up an April Fool Prank). I have sent some enquiry letters to apply for a job in web-development field mostly involves PHP. I prefer PHP over ASP.NET because I can have greater flexibilities in developing in PHP as what I experienced when I was developing my final year project.</p>
<p><span id="more-41"></span></p>
<p>I did not quite like ASP.NET when I took the course in Internet Programming. Probably the unit merely touches the surface of the power of ASP.NET but I still prefer PHP because every thing is not encapsulated. However, ASP.NET is great in the sense that it helps desktop application programmers to do web-development because the programmer can still double click on a control and then add in codes to model the behavior. Anyway, since I work in Gnome Environment most of the time, unless I install mono develop, I would not have a chance to do ASP.NET unless somehow I find myself a job for that.</p>
<p>This is also the reason why my new personal project will be written in PHP5 instead of ASP.NET. I have recently applied a free subversion hosting at <a href="http://unfuddle.com/">unfuddle</a> as my current web host does not offer subversion. The reason I start learning sub-version is because <a href="http://www.yongfook.com/post/view/267/10-dirty-little-web-development-tricks">in this post</a>, the author says,</p>
<blockquote><p>The n00b way of updating files on your web host would be to FTP in and drag and drop / delete stuff. Doing it like this will quickly get you into a mess with a large site with many files &#8211; there’s the potential to forget to upload certain files, accidentally overwriting things you shouldn’t etc. Some FTP apps have a “sync” button that tries to solve this, but I don’t trust them; you’re still overwriting files that you can never get back. That’s not a good policy to have with the valuable data on your production server.</p></blockquote>
<p>I quite agree with that as it happened when I was deploying my final year project online last year. Uploading the files online was one of the problems, and another one was to keep mine and Regina&#8217;s work in sync. We didn&#8217;t use revision control at the time because we thought we didn&#8217;t have enough time on learning it and it seems that we wasted more time in making sure we have the identical copy all the time.</p>
<p>However, I am still not being able to use subversion fully because my current web-host doesn&#8217;t allow me to use SSH. I will have to find a way later to deploy my personal project online.</p>
<h2>April FOOOOL~</h2>
<p>Anyway, yesterday was a wonderful day as you an find jokes everywhere. Recently a lot of people seems to love Mr. Rick Astley and his &#8220;<a href="http://youtube.com/watch?v=Yu_moia-oVI">Never Gonna Give You Up</a>&#8221; music video clip very much. I was told that <a href="http://www.youtube.com/">youtube</a> was linking all the featured videos to the music video clip yesterday (Rick Rolling). <a href="http://www.digg.com">Digg</a> on the other hand shows random mathematical symbols(some claimed each symbol represents a certain number of diggs) after a user diggs on the article.</p>
<p>My fellow bloggers were having fun as well as one of them claimed that their blog was being <a href="http://duller.kukuchew.com/archives/2826">sold</a> (in Chinese language) and there are also some saying that they have stopped blogging. As mentioned above, I helped mybloggercon to set up a <a href="http://mybloggercon.com/blog/movie-project/">joke</a> (in Chinese language) claiming that we are filming a movie. Then I further rick rolled the visitors without them knowing that the song actually means. Besides that, I have recently just finished posting my short story and made an announcement that the story will be published. Some friends like <a href="http://blog.reginabally.net/">Regina</a> actually took it seriously, anyway, I will make a hardcopy for her as she wanted earlier before she flies back to Sandakan.</p>
<p>Hopefully I can get employed by the end of the month. <img src='http://cslai.coolsilon.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://cslai.coolsilon.com/2008/04/02/what-a-wonderfool-life/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Slideshow using Scriptaculous</title>
		<link>http://cslai.coolsilon.com/2008/03/24/slideshow-using-scriptaculous/</link>
		<comments>http://cslai.coolsilon.com/2008/03/24/slideshow-using-scriptaculous/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 16:04:09 +0000</pubDate>
		<dc:creator>Jeffrey04</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Scriptaculuous]]></category>

		<guid isPermaLink="false">http://cslai.coolsilon.com/?p=13</guid>
		<description><![CDATA[I need a slide show script for my portfolio pages but couldn&#8217;t find a good one anywhere so I decided to write one myself. The slide show script will be able to display image and the respective description in a predefined order. However, in this version, visitors would not be able to directly jump to [...]]]></description>
			<content:encoded><![CDATA[<p>I need a slide show script for my portfolio pages but couldn&#8217;t find a good one anywhere so I decided to write one myself. The slide show script will be able to display image and the respective description in a predefined order. However, in this version, visitors would not be able to directly jump to a particular slide yet. The script is written in <a href="http://www.prototypejs.org/learn/class-inheritance">prototype</a>&#8216;s object-orientation approach hence you need to have prototype called.</p>
<p><span id="more-13"></span></p>
<h2>Prerequisite</h2>
<ol>
<li>Latest <a href="http://prototypejs.org/">Prototype</a> Javascript Framework and <a href="http://script.aculo.us/">Scrit.aculo.us</a> library</li>
<li>Call the slide show script file which you can download from <a href="http://cslai.coolsilon.com/wp-content/themes/sim-kite/javascripts/user/slide.js">here</a></li>
<li>
		Insert the images into a a list with id <code>olImageSlide</code> in following format:<br />
		<code class="html"><br />
			&lt;ol id="olImageSlide"&gt;<br />
				&lt;li id="liImageSlide1"&gt;&lt;!--Insert image here-&gt;&lt;/li&gt;<br />
				&lt;li id="liImageSlide2"&gt;&lt;!--Insert image here-&gt;&lt;/li&gt;<br />
			&lt;/ol&gt;<br />
		</code><br />
		Notice the increment of value in the list element id.
	</li>
<li>
		Insert the images into a a list with id <code>olDescriptionSlide</code> in following format:<br />
		<code class="html"><br />
			&lt;ol id="olDescriptionSlide"&gt;<br />
				&lt;li id="liDescriptionSlide1"&gt;&lt;!--Insert Description here-&gt;&lt;/li&gt;<br />
				&lt;li id="liDescriptionSlide2"&gt;&lt;!--Insert Description here-&gt;&lt;/li&gt;<br />
			&lt;/ol&gt;<br />
		</code><br />
		Notice the increment of value in the list element id.
	</li>
<li>Done!</li>
</ol>
<h2>Demo</h2>
<p><script type="text/javascript" src="http://cslai.coolsilon.com/wp-content/themes/sim-kite/javascripts/user/slide.js"></script></p>
<div id="divSlideShow" style="height: 220px;">
<ol id="olImageSlide">
<li id="liImageSlide1"><img src="http://cslai.coolsilon.com/wp-content/uploads/cslai/2008/03/example-slide-1.png" alt="The example slide 1" title="example-slide-1" width="200" height="200" /></li>
<li id="liImageSlide2"><img src="http://cslai.coolsilon.com/wp-content/uploads/cslai/2008/03/example-slide-2.png" alt="The example slide 2" title="example-slide-2" width="200" height="200" /></li>
</ol>
<ol id="olDescriptionSlide">
<li id="liDescriptionSlide1">
<h4>Slide 1</h4>
<p>This is the description for the first slide</p>
</li>
<li id="liDescriptionSlide2">
<h4>Slide 2</h4>
<p>This is the description for the second slide and is relatively longer</p>
</li>
</ol>
</div>
<h2>Note</h2>
<p>It is advisible to have all the image cropped into the same size.</p>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://cslai.coolsilon.com/2008/03/24/slideshow-using-scriptaculous/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

