<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Giapnguyen&#039;s Blog</title>
	<atom:link href="http://giapnguyen.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://giapnguyen.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 05 Aug 2009 16:02:15 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='giapnguyen.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/4b7fc9e1c78a67a57d585822bcd9cabe?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Giapnguyen&#039;s Blog</title>
		<link>http://giapnguyen.wordpress.com</link>
	</image>
			<item>
		<title>Busy busy</title>
		<link>http://giapnguyen.wordpress.com/2009/08/03/busy-busy/</link>
		<comments>http://giapnguyen.wordpress.com/2009/08/03/busy-busy/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 15:58:03 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/2009/08/03/busy-busy/</guid>
		<description><![CDATA[I&#8217;m busy to deploy Network/System monitoring system and IDS for my company, so I stop work on the project for a while&#8230;
Install erlang for Ubuntu
sudo apt-get install build-essential subversion
sudo apt-get install java-gcj-compat java-gcj-compat-dev
sudo apt-get install unixodbc-dev unixodbc-bin unixodbc
sudo apt-get install openssl libssl-dev
sudo apt-get install libsctp-dev libncurses5 libncurses5-dev
wget http://erlang.org/download/otp_src_R13B01.tar.gz
tar -xzvf otp_src_R13B01.tar.gz
cd otp_src_R13B01
./configure \
&#8211;enable-threads &#8211;enable-smp-support &#8211;enable-kernel-poll \
&#8211;enable-hipe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=55&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m busy to deploy Network/System monitoring system and IDS for my company, so I stop work on the project for a while&#8230;<br />
Install erlang for Ubuntu<br />
sudo apt-get install build-essential subversion<br />
sudo apt-get install java-gcj-compat java-gcj-compat-dev<br />
sudo apt-get install unixodbc-dev unixodbc-bin unixodbc<br />
sudo apt-get install openssl libssl-dev<br />
sudo apt-get install libsctp-dev libncurses5 libncurses5-dev</p>
<p>wget http://erlang.org/download/otp_src_R13B01.tar.gz<br />
tar -xzvf otp_src_R13B01.tar.gz<br />
cd otp_src_R13B01<br />
./configure \<br />
&#8211;enable-threads &#8211;enable-smp-support &#8211;enable-kernel-poll \<br />
&#8211;enable-hipe &#8211;enable-sctp &#8211;prefix=/opt/erlang<br />
make<br />
sudo make install<br />
for file in erl erlc epmd run_erl to_erl dialyzer typer escript; do<br />
sudo ln -s /opt/erlang/lib/erlang/bin/$file /usr/bin/$file;<br />
done</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=55&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/08/03/busy-busy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
		<item>
		<title>User Agent</title>
		<link>http://giapnguyen.wordpress.com/2009/07/17/user-agent/</link>
		<comments>http://giapnguyen.wordpress.com/2009/07/17/user-agent/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 09:05:26 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=52</guid>
		<description><![CDATA[After a week to struggle with jquery (js framework) and nitrogen, I able to write some small web 2 applications. But it is appear that a trading client is more complex than the system!!!
First the web application not suite for a high reliable trading platform &#8211; few of trading softwares written in web.
Second, I want [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=52&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After a week to struggle with jquery (js framework) and nitrogen, I able to write some small web 2 applications. But it is appear that a trading client is more complex than the system!!!</p>
<p>First the web application not suite for a high reliable trading platform &#8211; few of trading softwares written in web.</p>
<p>Second, I want implement a push-technology not a polling one (use in my company Vb.net software). So it double my work.</p>
<p><img class="aligncenter size-medium wp-image-53" title="user" src="http://giapnguyen.files.wordpress.com/2009/07/user.jpg?w=300&#038;h=285" alt="user" width="300" height="285" /></p>
<p>Main idea is a User agent process. When a user login, a User agent which global register with username created.  The  User agent bond with Session so if user logout or session timeout, it will be destroyed. Next time, user must login again to create a new User agent. So a User agent represent for a login user.</p>
<p>With global register name, there is a unique user agent per a user existed. If the same user login from other computer, the current user agent kicked out. Current user logout with error message &#8211; login from other computer(like yahoo email).</p>
<p>Pages interact with User agent by subscribe an event. User agent will push events to subscribe pages. Then the page push event to user browser via comet connection.</p>
<p>Other method to interact with user agent is job. Job is a block process, User agent will stop handle other event until the job not completed nor timeout (or crash). Job also stopped  if user agent destroyed.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=52&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/07/17/user-agent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>

		<media:content url="http://giapnguyen.files.wordpress.com/2009/07/user.jpg?w=300" medium="image">
			<media:title type="html">user</media:title>
		</media:content>
	</item>
		<item>
		<title>Time for client</title>
		<link>http://giapnguyen.wordpress.com/2009/07/07/time-for-client/</link>
		<comments>http://giapnguyen.wordpress.com/2009/07/07/time-for-client/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 03:28:09 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=49</guid>
		<description><![CDATA[I hated to write a web application; tons of javascript, html and css code &#8211; mostly for decorate a button or a form  
Another thing is performance, web application is very very slow&#8230;
I found an awesome article about a guy push 1 million comet connections on a single mochiweb server. It is fucking amazing. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=49&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I hated to write a web application; tons of javascript, html and css code &#8211; mostly for decorate a button or a form <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Another thing is performance, web application is very very slow&#8230;</p>
<p>I found an awesome article about a guy push 1 million comet connections on a single mochiweb server. It is fucking amazing. A million comet connections mean 1 million concurrent active connections &#8211; it cost more resource than 1 million normal web requests which close connection after finish their job. There are 3 parts of the article &#8211; step by step solve the million connection problems. It&#8217;s interesting that most of tuning jobs are for Linux not erlang its self. Erlang born for huge numbers of concurrent processes.</p>
<p><a href="http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1/">http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1/</a></p>
<p>Another awesome thing is Nitrogen framework <a href="http://nitrogenproject.com">http://nitrogenproject.com</a></p>
<p>Nitrogen is pure erlang web 2 framework. You can code a web application like eat a piece of cake , they have a sample of comet chat room just 57 loc . Nitrogen support jquery as client, yaws or mochiweb as server and long-poll comet technical.</p>
<p>Of cause nitrogen can&#8217;t handle 1 million comet as mochiweb. It is complex framework and not optimize yet. But it save my ass for coding web application and I can patch nitrogen later for performance. Nitrogen also contain some interesting piece of code. Sync and mirror module allow migrate an erlang application from computer to computer automatically. Great, I can use it to write a code management for my application. I can update a node and whole system can work without more work.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=49&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/07/07/time-for-client/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
		<item>
		<title>The whole picture</title>
		<link>http://giapnguyen.wordpress.com/2009/07/01/the-whole-picture/</link>
		<comments>http://giapnguyen.wordpress.com/2009/07/01/the-whole-picture/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 16:46:37 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=41</guid>
		<description><![CDATA[I draw a whole picture for my application.

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=41&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I draw a whole picture for my application.</p>
<p><img class="size-large wp-image-43 alignleft" title="Diagram1" src="http://giapnguyen.files.wordpress.com/2009/07/diagram11.png?w=553&#038;h=237" alt="Diagram1" width="553" height="237" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=41&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/07/01/the-whole-picture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>

		<media:content url="http://giapnguyen.files.wordpress.com/2009/07/diagram11.png?w=1024" medium="image">
			<media:title type="html">Diagram1</media:title>
		</media:content>
	</item>
		<item>
		<title>Next move</title>
		<link>http://giapnguyen.wordpress.com/2009/06/28/next-move/</link>
		<comments>http://giapnguyen.wordpress.com/2009/06/28/next-move/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 15:19:25 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/2009/06/28/next-move/</guid>
		<description><![CDATA[After play around with Rabbitmq, I&#8217;m back to business logic. I finished contract engine module which receive match data from match engine module to generate contracts. Nice! next move is accounting module with debit/credit user accounts.
I also look for a client technology. Mochiweb/Erlycomet very promise. It likes lightstreamer in Net.
http://www.slideshare.net/moschel/comet-overview
http://cometdaily.com/2007/12/14/getting-started-with-comet-on-erlang/
http://cometdaily.com/2008/01/03/comet-gazing-memory-usage/
ErlyComet is a Comet server written [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=37&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After play around with Rabbitmq, I&#8217;m back to business logic. I finished contract engine module which receive match data from match engine module to generate contracts. Nice! next move is accounting module with debit/credit user accounts.<br />
I also look for a client technology. Mochiweb/Erlycomet very promise. It likes lightstreamer in Net.<br />
<a href="http://www.slideshare.net/moschel/comet-overview">http://www.slideshare.net/moschel/comet-overview</a><br />
<a href="http://cometdaily.com/2007/12/14/getting-started-with-comet-on-erlang/">http://cometdaily.com/2007/12/14/getting-started-with-comet-on-erlang/</a></p>
<p><a href="http://cometdaily.com/2008/01/03/comet-gazing-memory-usage/">http://cometdaily.com/2008/01/03/comet-gazing-memory-usage/</a></p>
<blockquote><p>ErlyComet is a Comet server written in Erlang. Memory usage per connection starts at 43 KB, measured from the ErlyComet (development snapshot) demo application. That allows more than 20,000 connections per GB of RAM. Not included in this view is the in-memory database, which maps connection identification to process identification and might contain other shared information. Its size with the demo application is marginal, but with a complex application, its memory consumption can easily grow beyond the total memory consumed by the connection processes. How memory consumption increases when all connections are simultaneously exchanging messages needs to be determined with stress testing.</p>
<pre>To reduce overall memory consumption, there are some Erlang specific tricks:</pre>
<pre>    * For text, binaries should be used whenever possible for the internal representation, instead of lists.

    * For the in-memory database, partitioned tables (across nodes) can be used instead of per-node replicated tables.</pre>
</blockquote>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=37&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/06/28/next-move/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrate with RabbitMQ &#8211; 1</title>
		<link>http://giapnguyen.wordpress.com/2009/06/22/integrate-with-rabbitmq-1/</link>
		<comments>http://giapnguyen.wordpress.com/2009/06/22/integrate-with-rabbitmq-1/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 16:15:57 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=32</guid>
		<description><![CDATA[I choose RabbitMQ because

It have big community (easy to find an answer).
It able to persistent messages prevent loss from restart MQ server.
It write in erlang (easy to patch RabbitMQ for custom needs).
It have a erlang client.

First test &#8211; broker send an order via RabbitMQ to x_server.The x_server is a gen_server which wait to receive order [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=32&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I choose RabbitMQ because</p>
<ul>
<li>It have big community (easy to find an answer).</li>
<li>It able to persistent messages prevent loss from restart MQ server.</li>
<li>It write in erlang (easy to patch RabbitMQ for custom needs).</li>
<li>It have a erlang client.</li>
</ul>
<p>First test &#8211; broker send an order via RabbitMQ to x_server.The x_server is a gen_server which wait to receive order from RabbitMQ. The server will call x_engine to process the order.</p>
<p><img class="alignnone size-full wp-image-35" title="rmq1" src="http://giapnguyen.files.wordpress.com/2009/06/rmq11.jpg?w=310&#038;h=309" alt="rmq1" width="310" height="309" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=32&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/06/22/integrate-with-rabbitmq-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>

		<media:content url="http://giapnguyen.files.wordpress.com/2009/06/rmq11.jpg" medium="image">
			<media:title type="html">rmq1</media:title>
		</media:content>
	</item>
		<item>
		<title>VNese Gold exchange opensource, why not?</title>
		<link>http://giapnguyen.wordpress.com/2009/06/22/vnese-gold-exchange-opensource-why-not/</link>
		<comments>http://giapnguyen.wordpress.com/2009/06/22/vnese-gold-exchange-opensource-why-not/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 09:45:56 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=27</guid>
		<description><![CDATA[I&#8217;ve just finished a match orders engine module (erlang) and look around for a Message Queuing software to integrate.
My list is
- Zeromq http://www.zeromq.org/
- Rabbitmq http://www.rabbitmq.com
Discuss about Message Queue here:
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=27&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve just finished a match orders engine module (erlang) and look around for a Message Queuing software to integrate.</p>
<p>My list is</p>
<p>- Zeromq<a href="http://www.zeromq.org" target="_blank"> http://www.zeromq.org/</a></p>
<p>- Rabbitmq <a href="http://www.rabbitmq.com" target="_blank">http://www.rabbitmq.com</a></p>
<p>Discuss about Message Queue here:</p>
<p><a href="http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes" target="_blank">http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=27&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/06/22/vnese-gold-exchange-opensource-why-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
		<item>
		<title>Trading gold accounting &#8211; monitor risk</title>
		<link>http://giapnguyen.wordpress.com/2009/06/16/trading-gold-accounting-monitor-risk/</link>
		<comments>http://giapnguyen.wordpress.com/2009/06/16/trading-gold-accounting-monitor-risk/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:21:04 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=21</guid>
		<description><![CDATA[Bank monitor margin to lock/release cash. If no more cash avaible , bank will warning user. If margin too low, bank will auto-close the trade to return loan.
Equity = Asset &#8211; Debt
Equity = Asset0 + Cash &#8211; Debt
Equity &#8211; Cash = Asset0  &#8211; Debt = Margin
%Margin = (Equity-Cash)/Asset0 (current locked margin)
%ExtendMargin = Equity/Asset0 (extensible margin)
Cash0 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=21&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bank monitor margin to lock/release cash. If no more cash avaible , bank will warning user. If margin too low, bank will auto-close the trade to return loan.</p>
<p>Equity = Asset &#8211; Debt<br />
Equity = Asset0 + Cash &#8211; Debt<br />
Equity &#8211; Cash = Asset0  &#8211; Debt = Margin</p>
<p>%Margin = (Equity-Cash)/Asset0 (current locked margin)</p>
<p>%ExtendMargin = Equity/Asset0 (extensible margin)</p>
<p>Cash0 (free cash) = Equity &#8211; Asset0*Fix_Margin%</p>
<p>Bank monitor free cash if it =0, users have not enough cash to maintain their position.</p>
<h3>Deadlock,  Inconsistent, Low performance</h3>
<p>The platform require bank lock user money before accept/execute orders, but the bank require platform provide market price before it process orders -&gt; easy to death lock, inconsistent. If we avoid from deadlock and inconsistent, we must accept low performance. The platform should not process any order  before bank finish its job.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=21&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/06/16/trading-gold-accounting-monitor-risk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
		<item>
		<title>Trading gold accounting</title>
		<link>http://giapnguyen.wordpress.com/2009/06/16/trading-gold-accounting/</link>
		<comments>http://giapnguyen.wordpress.com/2009/06/16/trading-gold-accounting/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 02:48:23 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=18</guid>
		<description><![CDATA[Accounting of trading gold (ofcause at Vietnam only) very complex.
- You must freeze a margin before placing an order (pending orders).
- In long order, you borrow %money (based on %margin) + your own margin to buy gold. Of cause the gold locked, until you sell to close the order or deposit money to pay debt [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=18&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Accounting of trading gold (ofcause at Vietnam only) very complex.<br />
- You must freeze a margin before placing an order (pending orders).</p>
<p>- In long order, you borrow %money (based on %margin) + your own margin to buy gold. Of cause the gold locked, until you sell to close the order or deposit money to pay debt to withdraw it.</p>
<p>- In short order, you borrow gold from bank to sell for money, but the money + margin is locked just for buy gold back to close the order. Except you deposit gold to unlocked the money.</p>
<p>Trading accounting journal</p>
<p>1. Place an order buy 1 gold price 2000, margin 1%</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Cash</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">20</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Margin</td>
<td width="73" valign="top">20</td>
<td width="71" valign="top"></td>
</tr>
</tbody>
</table>
<p>2 Cancel the pending order</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Cash</td>
<td width="73" valign="top">20</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Margin</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">20</td>
</tr>
</tbody>
</table>
<p>3. Execute the pending order buy 1 gold @ 2000</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Margin</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">20</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Money Debt</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">1980</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Gold</td>
<td width="73" valign="top">1</td>
<td width="71" valign="top"></td>
</tr>
</tbody>
</table>
<p>4. Sell close the order buy 1 gold @ 1990</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Cash</td>
<td width="73" valign="top">10</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Money Debt</td>
<td width="73" valign="top">1980</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Gold</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">1</td>
</tr>
</tbody>
</table>
<p>5. Execute a pending order sell gold @ 2200</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Margin</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">22</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Gold Debt</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">1</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Sell Gold</td>
<td width="73" valign="top">2222</td>
<td width="71" valign="top"></td>
</tr>
</tbody>
</table>
<p>6. Buy close the order sell 1 gold @ 2210</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Cash</td>
<td width="73" valign="top">12</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Gold Debt</td>
<td width="73" valign="top">1</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Sell Gold</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">2222</td>
</tr>
</tbody>
</table>
<p>7. Deposit money to pay debt to withdraw gold</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Cash</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">1980+fee</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Money Debt</td>
<td width="73" valign="top">1980</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Gold</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">1</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Gold</td>
<td width="73" valign="top">1</td>
<td width="71" valign="top"></td>
</tr>
</tbody>
</table>
<p>8. Deposit gold to unlocked money</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85" valign="top">Date</td>
<td width="97" valign="top">Account</td>
<td width="73" valign="top">Debit</td>
<td width="71" valign="top">Credit</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Cash</td>
<td width="73" valign="top">2222-fee</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Receivable Sell Gold</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">2222</td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Gold Debt</td>
<td width="73" valign="top">1</td>
<td width="71" valign="top"></td>
</tr>
<tr>
<td width="85" valign="top"></td>
<td width="97" valign="top">Gold</td>
<td width="73" valign="top"></td>
<td width="71" valign="top">1</td>
</tr>
</tbody>
</table>
<p>How bank monitor the risk?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=18&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/06/16/trading-gold-accounting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
		<item>
		<title>Too many db tables!?</title>
		<link>http://giapnguyen.wordpress.com/2009/06/12/too-many-db-tables/</link>
		<comments>http://giapnguyen.wordpress.com/2009/06/12/too-many-db-tables/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 14:47:05 +0000</pubDate>
		<dc:creator>giapnguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://giapnguyen.wordpress.com/?p=13</guid>
		<description><![CDATA[Spawn 10,000 concurrent proccesses to write to mnesia. Erlang crash with a lot of &#8220;too many db tables&#8221;.
test_basic_3(N) -&#62;
    {T,S} = timer:tc(?MODULE, test_basic_3_spawn,[N]),
    ?debugFmt("test_basic 3: ~p us; ~p",[T,S]).

test_basic_3_spawn(N) when N&#62;0 -&#62;
    spawn(
        fun()-&#62;
       [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=13&subd=giapnguyen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Spawn 10,000 concurrent proccesses to write to mnesia. Erlang crash with a lot of &#8220;too many db tables&#8221;.</p>
<pre>test_basic_3(N) -&gt;
    {T,S} = timer:tc(?MODULE, test_basic_3_spawn,[N]),
    ?debugFmt("test_basic 3: ~p us; ~p",[T,S]).

test_basic_3_spawn(N) when N&gt;0 -&gt;
    spawn(
        fun()-&gt;
            Order = #order{
                price=random2(18000,23000),
                id=time2us(now()),
                type=sell,
                size=random2(1,100)},

            mnesia:activity(
                {transaction, infinity},
                fun() -&gt;
                    m_write_pending_order(Order),
                    Order = m_read_pending_order(?SELL_DESK, Order#order.id)
                end)
        end
    ),
    test_basic_3_spawn(N-1);

test_basic_3_spawn(0) -&gt;
    ok.</pre>
<p>The problem is each mnesia transaction create a ets table to hold transaction state. 10k transactions will create 10k ets table. It is out of max ets tables -default ~ 1400, so erlang throw  &#8220;too many db tables&#8221; errors. To solve the problem, we can increase max of ets tables:<br />
<span style="color:#0000ff;"><code>erl -env ERL_MAX_ETS_TABLES 100000</code></span></p>
<p>Run the test again, no more &#8220;too many db tables&#8221;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giapnguyen.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giapnguyen.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giapnguyen.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giapnguyen.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giapnguyen.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giapnguyen.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giapnguyen.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giapnguyen.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giapnguyen.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giapnguyen.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giapnguyen.wordpress.com&blog=8080360&post=13&subd=giapnguyen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giapnguyen.wordpress.com/2009/06/12/too-many-db-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0136f655819ffce5d38ec0043a7a628?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">giapnguyen</media:title>
		</media:content>
	</item>
	</channel>
</rss>