<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
	<channel>
		<title>Latest articles from Vinh Khoa's Blog</title>
		<link>http://blog.vinhkhoa.com/</link>
		<description>Khoa is the founder of coldfusion framework cfTrigger. He is also the cofounder and lead developer of Treegr, a social housing service.</description>
		<pubDate>Sat, 18 May 2013 18:15:06 GMT</pubDate>
		<image>
			<url>http://blog.vinhkhoa.com/images/logo.png</url>
			<title>Vinh Khoa's Blog</title>
			<link>http://blog.vinhkhoa.com/</link>
		</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/vinhkhoablog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="vinhkhoablog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
			<title>4 ways to capture spams you may not know yet</title>
			<description>&lt;p&gt;We all have forms of some sort on our website: comment form, contact form, registration form, etc. Forms are good because it allows user to interact with our site but at the same time they attract spams. A common way to prevent spams is to use captcha but the problem is none of us likes to type in those funny characters, especially you may get them wrong and have to retype, not to mention they don't make my pages look very pretty.&lt;/p&gt;

&lt;p&gt;While working on my blog, I experimented with a few different ways to prevent spams without using these ugly captchas. Below are the 4 methods that I use: ask a simple question, include a hidden field with CSS, validate request referer and check against Stop Forum Spam. &lt;a href="/article/4-ways-to-capture-spams-you-may-not-know-yet"&gt;Read more&lt;/a&gt;&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/4-ways-to-capture-spams-you-may-not-know-yet</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/4-ways-to-capture-spams-you-may-not-know-yet</guid>
			<pubDate>Mon, 21 Jan 2013 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>How to run jboss 5 as a service on Linux</title>
			<description>&lt;p&gt;After working with jboss for a while, I decided to set it as a service so that I could start and stop it easier and do not have to have a terminal window open every time I start jboss. This turns out to be easier that I thought. I know jboss is up to version 7 now but I find jboss 5 is sufficient for what I need to do so I still stick with it and that's what I use to demonstrate in this article. If you are still using jboss 5 and interested in setting it up as a service too, &lt;a href="http://blog.vinhkhoa.com/article/How-to-run-jboss-5-as-a-service-on-Linux"&gt;read on&lt;/a&gt;.&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/How-to-run-jboss-5-as-a-service-on-Linux</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/How-to-run-jboss-5-as-a-service-on-Linux</guid>
			<pubDate>Mon, 07 Jan 2013 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>How to delete all photos on jailbroken iPad without iTunes</title>
			<description>&lt;p&gt;After jailbreaking iPad, although music and videos are deleted, photos are not. This at first seems to be a good thing as it saves me time transferring the photos again. But after using if for a while, I find it a more problematic than handy. With the iPad being jailbroken, I now use 3rd party app to manage my photos instead of the built-in one and these apps require my photos to be in different locations, different album structures, etc. That means I need to delete those in the built-in app to preserve space. Unfortunately there is no easy way to remove them without going through the iTunes sync process which I don’t want because it's likely to mess up my jailbreak (I never have full confidence in it). &lt;a href="http://blog.vinhkhoa.com/article/How-to-delete-all-photos-on-jailbroken-iPad-without-iTunes"&gt;Read full article&lt;/a&gt;&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/How-to-delete-all-photos-on-jailbroken-iPad-without-iTunes</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/How-to-delete-all-photos-on-jailbroken-iPad-without-iTunes</guid>
			<pubDate>Fri, 04 Jan 2013 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Get private variables &amp;amp; functions using function injection</title>
			<description>&lt;p&gt;If you are familiar with OOP, you  know that there are basically 2 types (scopes) of variables and functions:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Private: only available within the object itself&lt;/li&gt;
	&lt;li&gt;Public: also available to the caller, outside the object&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(There are  other scopes as well but I leave them out to keep things focused in this article)&lt;/p&gt;

&lt;p&gt;To know what's available publicly, we can either read the documentation or use some functions like &lt;em&gt;cfdump&lt;/em&gt; in Coldfusion.&lt;/p&gt;

&lt;p&gt;But what about the private ones? How can we know what variables and functions are available &lt;em&gt;privately&lt;/em&gt; inside the object? I know there are many good   reasons for things to remain private and I totally agree that is the good   architecture. But there are times I want to know how the internal variables  change, what values they are holding at runtime. This is especially  useful for debugging purpose. &lt;a href="http://blog.vinhkhoa.com/article/Get-private-variables-functions-using-function-injection"&gt;Read full article&lt;/a&gt;.&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/Get-private-variables-functions-using-function-injection</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/Get-private-variables-functions-using-function-injection</guid>
			<pubDate>Sun, 12 Sep 2010 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Coldfusion variable scopes in CFCs</title>
			<description>&lt;p&gt;While fixing my &lt;a href="http://cftrigger.com/" class="externalLink_tiny"&gt;cfTrigger framework&lt;/a&gt; recently, I realized that I have messed up the scopes of variables inside cfcs seriously! I omitted the &lt;strong&gt;var&lt;/strong&gt; keyword for local variables and used &lt;strong&gt;This&lt;/strong&gt; keyword where it should have been &lt;strong&gt;Variables&lt;/strong&gt;. So before continuing to fix it, I decided to take a step back and learn again in a more proper way what variable scopes are available in Coldfusion cfcs and how to use them correctly. &lt;a href="http://blog.vinhkhoa.com/article/Coldfusion-variable-scopes-in-CFCs"&gt;Read full article&lt;/a&gt;.&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/Coldfusion-variable-scopes-in-CFCs</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/Coldfusion-variable-scopes-in-CFCs</guid>
			<pubDate>Sat, 11 Sep 2010 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>How to play videos continuously on iPad</title>
			<description>&lt;p&gt;iPad is great for watching movies, except for one annoying issue: the movie app on iPad does not support playlist. That means the movies are played one by one. But you can in fact resolve this by setting your movies as TV Show. &lt;a href="http://blog.vinhkhoa.com/article/how-to-play-videos-continuously-on-ipad"&gt;Read full article&lt;/a&gt;.&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/How-to-play-videos-continuously-on-iPad</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/How-to-play-videos-continuously-on-iPad</guid>
			<pubDate>Sun, 25 Jul 2010 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>3 functions to extend Coldfusion array</title>
			<description>&lt;p&gt;Array is a data type that exists in almost any programming languages. Although Coldfusion has provided many useful functions to work with arrays including some quite unique to Coldfusion such as ArrayToList, ArrySort, etc., I find many are still missing. For example, there is no function to remove duplicated items (huh?) and I use this one a lot. What about a function to reverse an array? Guess what, it's not there either (at least not natively in coldfusion). So I went ahead and made my own ones.&lt;/p&gt;

&lt;p&gt;In this article, I will show you the 3 functions that I find very useful: ArrayUnique, ArrayReverse and ArrayUnion. &lt;a href="http://blog.vinhkhoa.com/article/3-functions-to-extend-Coldfusion-array"&gt;Read full article&lt;/a&gt;&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/3-functions-to-extend-Coldfusion-array</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/3-functions-to-extend-Coldfusion-array</guid>
			<pubDate>Sat, 24 Jul 2010 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Set up a Railo/Apache/MySQL host on Ubuntu - Part 4: install subdomains [END]</title>
			<description>&lt;p&gt;This article will show you how to install subdomains on Ubuntu (might work with other Unix OS as well). This is the fourth and also the last article of the series &amp;quot;Set up a Railo/Apache/MySQL host on Ubuntu&amp;quot;, which is composed of 4 parts:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-1-install-Railo-and-Apache"&gt;Part 1: install Apache and Railo&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-2-install-MySQL-and-enable-remote-access"&gt;Part 2: install MySQL and enable remote access&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-3-install-FTP-server-and-set-up-user-access"&gt;Part 3: install FTP server and set up user access&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Part 4: install subdomains&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The topics of every article are quite independent. So you don't need to read the first 3 articles if you are only interested in setting up subdomains. &lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-4-install-subdomains-END"&gt;Read full article&lt;/a&gt;&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-4-install-subdomains-END</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-4-install-subdomains-END</guid>
			<pubDate>Wed, 14 Jul 2010 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Set up a Railo/Apache/MySQL host on Ubuntu - Part 3: install FTP server and set up user access</title>
			<description>&lt;p&gt;This article will show you how to install FTP server on Ubuntu (might work with other Unix OS as well) and how to give your users FTP access only to the folders you want them to manage. This is the third article of the series &amp;quot;Set up a Railo/Apache/MySQL host on Ubuntu&amp;quot;, which is composed of 4 parts:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-1-install-Railo-and-Apache"&gt;Part 1: install Apache and Railo&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-2-install-MySQL-and-enable-remote-access"&gt;Part 2: install MySQL and enable remote access&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Part 3: install FTP server and set up user access&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;Part 4: install subdomains&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The topics of every article are quite independent. So you don't need to read the first 2 articles if you are only interested in installing FTP server and set up user access. &lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-3-install-FTP-server-and-set-up-user-access"&gt;Read full article&lt;/a&gt;&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-3-install-FTP-server-and-set-up-user-access</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-3-install-FTP-server-and-set-up-user-access</guid>
			<pubDate>Sun, 23 May 2010 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Set up a Railo/Apache/MySQL host on Ubuntu - Part 2: install MySQL and enable remote access</title>
			<description>&lt;p&gt;
	Following up from part 1, this is the second part of the series &amp;quot;Set up a Railo/Apache/MySQL host on Ubuntu&amp;quot;, which is composed of 4 parts:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		Part 1: install Apache and Railo&lt;/li&gt;
	&lt;li&gt;
		Part 2: install MySQL and enable remote access (&lt;em&gt;this article&lt;/em&gt;)&lt;/li&gt;
	&lt;li&gt;
		Part 3: install FTP server and set up user access permission&lt;/li&gt;
	&lt;li&gt;
		Part 4: install subdomains&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	In part 1, I showed you how to install Railo and Apache server on Ubuntu. If you would like to follow the series from the beginning, you can read part 1 at &lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-1-install-Railo-and-Apache"&gt;Set up a Railo/Apache/MySQL host on Ubuntu - Part 1: install Railo and Apache&lt;/a&gt;. However, the topics of these 2 articles are quite independent. So you don&amp;#39;t need to read the first article if you are only interested in installing MySQL server.&lt;/p&gt;
&lt;p&gt;
	At the end of every installation step, if necessary I will include a little part called &lt;em&gt;Step verification&lt;/em&gt; for you to know if you have completed that step successfully. It&amp;#39;s important that you check this as a step depends on the one before it to be completed. So if you could not get one step done successfully, there is chance you will encounter errors at the steps that follow.&lt;/p&gt;
&lt;p&gt;
	If you did read part 1, you would notice that it was quite a long article due to the large number of components that need to be configured along the way. Fortunately, installing MySQL is a lot easier and shorter as I will show you. &lt;a href="http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-2-install-MySQL-and-enable-remote-access"&gt;Read full article&lt;/a&gt;&lt;/p&gt;</description>
			<link>http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-2-install-MySQL-and-enable-remote-access</link>
			<guid isPermaLink="true">http://blog.vinhkhoa.com/article/Set-up-a-Railo-Apache-MySQL-host-on-Ubuntu-Part-2-install-MySQL-and-enable-remote-access</guid>
			<pubDate>Sun, 23 May 2010 00:00:00 GMT</pubDate>
		</item>
	</channel>
</rss>
