<?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>Jia Jun Goes GSoC</title>
	<atom:link href="http://goes-gsoc.zerothree.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://goes-gsoc.zerothree.net</link>
	<description>His Google Summer of Code 2009 experience…</description>
	<lastBuildDate>Fri, 21 Aug 2009 02:35:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>geodns-new.pl</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/20/geodns-new-pl/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/20/geodns-new-pl/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 02:35:39 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=171</guid>
		<description><![CDATA[modified the geodns.pl from the original setup. Most of the file is still largely the same as the original. Added in some functions to support the new views management functions and modified the old ones to support weight configuration. geodns-new.pl 30/10/2009: Updated the file link, no change in content though.]]></description>
			<content:encoded><![CDATA[<p>modified the geodns.pl from the original setup. Most of the file is still largely the same as the original. Added in some functions to support the new views management functions and modified the old ones to support weight configuration.</p>
<p><a href="http://goes-gsoc.zerothree.net/files/2009/10/geodns-new.zip" target="_blank">geodns-new.pl</a></p>
<p>30/10/2009: Updated the file link, no change in content though.</p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/20/geodns-new-pl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>web UI</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/19/web-ui/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/19/web-ui/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 05:38:01 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=169</guid>
		<description><![CDATA[Finally publishing the web UI. This is a PHP script, hence, PHP need to be installed on the server. PHP 5 to be exact The database configuration can be done by modifying the variables in sql.php &#160; Web UI]]></description>
			<content:encoded><![CDATA[<p>Finally publishing the web UI.</p>
<p>This is a PHP script, hence, PHP need to be installed on the server. PHP 5 to be exact</p>
<p>The database configuration can be done by modifying the variables in sql.php</p>
<p>&#160;</p>
<p><a href="http://goes-gsoc.zerothree.net/files/2009/08/webui_lic.zip" target="_blank">Web UI</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/19/web-ui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration Download Script</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/12/configuration-download-script/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/12/configuration-download-script/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 11:15:29 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=165</guid>
		<description><![CDATA[to automate the comparison and download process of the generated configuration file (from WebUI), the following shell script could be used. simply replace the following to use the script. filePath=&#34;/var/named/downloaded.views&#34;; #change the filepath to the destination file desired. replace all http://12.7.0.0.1 with the location where the webUI is hosted. &#160; getConfig.sh]]></description>
			<content:encoded><![CDATA[<p>to automate the comparison and download process of the generated configuration file (from WebUI), the following shell script could be used.</p>
<p>simply replace the following to use the script.</p>
<p>filePath=&quot;/var/named/downloaded.views&quot;; #change the filepath to the destination file desired.</p>
<p>replace all http://12.7.0.0.1 with the location where the webUI is hosted.</p>
<p>&#160;</p>
<p><a href="http://goes-gsoc.zerothree.net/files/2009/08/getConfig.sh" target="_blank">getConfig.sh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/12/configuration-download-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>testing tool</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/12/testing-tool/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/12/testing-tool/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 10:57:00 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=162</guid>
		<description><![CDATA[custom created a testing tool that performs simple load testing on the DNS server. The main feature of the tool allows the results to be saved into the database table (schema provided below) and then displaying the statistics of each result at the end of the test. This allows easy verification of the weights configured [...]]]></description>
			<content:encoded><![CDATA[<p>custom created a testing tool that performs simple load testing on the DNS server.</p>
<p>The main feature of the tool allows the results to be saved into the database table (schema provided below) and then displaying the statistics of each result at the end of the test. This allows easy verification of the weights configured on the records.</p>
<p>sample output:</p>
<blockquote><p>Retriving results for test: 4      <br />Number of results:100000       <br />Formatting output&#8230;       <br />Query: releases.geo.mozilla.com       <br />Test started on: 2009-08-05 20:41:41       <br />155.98.64.83&#160;&#160;&#160; 17699(17.70%)       <br />149.20.20.5&#160;&#160;&#160;&#160; 17613(17.61%)       <br />129.101.198.59&#160; 13460(13.46%)       <br />128.61.111.9&#160;&#160;&#160; 13320(13.32%)       <br />204.152.184.113 6751(6.75%)       <br />202.177.202.154 6693(6.69%)       <br />131.188.12.212&#160; 6564(6.56%)       <br />156.56.247.196&#160; 4437(4.44%)       <br />64.50.236.214&#160;&#160; 2365(2.37%)       <br />64.50.238.52&#160;&#160;&#160; 2268(2.27%)       <br />64.50.236.52&#160;&#160;&#160; 2264(2.26%)       <br />204.152.184.196 2231(2.23%)       <br />216.165.129.141 2191(2.19%)       <br />204.246.0.136&#160;&#160; 2144(2.14%)       <br />Average Query Time: 0.00868 seconds</p>
</blockquote>
<p>Files:</p>
<p><a href="http://goes-gsoc.zerothree.net/files/2009/08/loadDNS.pl" target="_blank">loadDNS.pl</a>     <br /><a href="http://goes-gsoc.zerothree.net/files/2009/08/database-testLoad.sql" target="_blank">database-testLoad.sql</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/12/testing-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>database countries</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/07/database-countries/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/07/database-countries/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 03:58:28 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=154</guid>
		<description><![CDATA[To populate the countries in the geoip_geo table, the following file can be used to insert all countries available in the GeoLite Country database into the table. geoip_geo is used to provide the countries available for matching to views. databsae-geoip-countries.sql]]></description>
			<content:encoded><![CDATA[<p>To populate the countries in the geoip_geo table, the following file can be used to insert all countries available in the GeoLite Country database into the table.</p>
<p>geoip_geo is used to provide the countries available for matching to views.</p>
<p><a title="databsae-geoip-countries.sql" href="http://goes-gsoc.zerothree.net/files/2009/08/databsae-geoip-countries.sql" target="_blank">databsae-geoip-countries.sql</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/07/database-countries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>database schema (upgrade)</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/05/database-schema-upgrade/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/05/database-schema-upgrade/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 15:51:41 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=149</guid>
		<description><![CDATA[If the database were already containing the old table. Perform the following to upgrade the database update releases-geo using the upgrade file &#160;&#160;&#160; [jiajun@sm-geodnssoc ~]$ mysql -u user -p geo-mozilla-com&#60; database-upgrade.sql create the new tables and stored procedures &#160;&#160;&#160; [jiajun@sm-geodnssoc ~]$ mysql -u user -p geo-mozilla-com&#60; database.sql rebuild the views either from geodns.pl/web UI/mysql before [...]]]></description>
			<content:encoded><![CDATA[<p>If the database were already containing the old table. Perform the following to upgrade the database</p>
<p>update releases-geo using the upgrade file    <br />&#160;&#160;&#160; [jiajun@sm-geodnssoc ~]$ mysql -u user -p geo-mozilla-com&lt; database-upgrade.sql</p>
<p>create the new tables and stored procedures    <br />&#160;&#160;&#160; [jiajun@sm-geodnssoc ~]$ mysql -u user -p geo-mozilla-com&lt; database.sql</p>
<p>rebuild the views either from geodns.pl/web UI/mysql before restarting the DNS server    <br />&#160;&#160;&#160; [jiajun@sm-geodnssoc ~]$ mysql –u user –p     <br />&#160;&#160;&#160; mysql&gt; call buildViews();</p>
<p>&#160;</p>
<p><a href="http://goes-gsoc.zerothree.net/files/2009/08/database-upgrade.sql" target="_blank">database-upgrade.sql</a></p>
<p><a href="http://goes-gsoc.zerothree.net/files/2009/08/database.sql" target="_blank">database.sql</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/05/database-schema-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>database schema</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/03/database-schema/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/03/database-schema/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 07:31:45 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=143</guid>
		<description><![CDATA[Uploading the database schema. To create the MySQL DB for Bind’s usage, simply create and database and use the file to create the tables and stored procedures. Example. [jiajun@sm-geodnssoc ~]$ mysql –u user –p mysql&#62; CREATE DATABASE `geo-mozilla-com`; mysql&#62; exit [jiajun@sm-geodnssoc ~]$ mysql -u user -p geo-mozilla-com&#60; database.sql rebuild the views either from geodns.pl/web UI/mysql [...]]]></description>
			<content:encoded><![CDATA[<p>Uploading the database schema. To create the MySQL DB for Bind’s usage, simply create and database and use the file to create the tables and stored procedures.</p>
<p>Example.</p>
<p>[jiajun@sm-geodnssoc ~]$ mysql –u user –p    <br />mysql&gt; CREATE DATABASE `geo-mozilla-com`;     <br />mysql&gt; exit     <br />[jiajun@sm-geodnssoc ~]$ mysql -u user -p geo-mozilla-com&lt; database.sql </p>
<p>rebuild the views either from geodns.pl/web UI/mysql before restarting the DNS server    <br />&#160;&#160;&#160; [jiajun@sm-geodnssoc ~]$ mysql –u user –p     <br />&#160;&#160;&#160; mysql&gt; call buildViews();</p>
<p>NOTE: I had reuploaded the schema file on 5 Aug 2337 hrs (GMT +8).</p>
<p>Changes:</p>
<p>- the new version does not drop the table if it exists. It will create the table only if it does not exists. However, stored procedures will always be recreated.</p>
<p>&#160;</p>
<p>Files:</p>
<p><a title="Database Schema" href="http://goes-gsoc.zerothree.net/files/2009/08/database.sql" target="_blank">Database Schema</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/03/database-schema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generated Diff</title>
		<link>http://goes-gsoc.zerothree.net/2009/08/02/generated-diff/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/08/02/generated-diff/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 10:15:06 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Final Files]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=141</guid>
		<description><![CDATA[finished testing the diff file yesterday. Downloaded bind-9.4.3-P3.tar.gz and made sure the codes work against it and the generated the patch by comparing the original files with the modified ones. The diff included modifications to enable the dlz driver so that the vanilla codes can be changed without much intervention. To replicate the results, the [...]]]></description>
			<content:encoded><![CDATA[<p>finished testing the diff file yesterday.</p>
<p>Downloaded bind-9.4.3-P3.tar.gz and made sure the codes work against it and the generated the patch by comparing the original files with the modified ones.</p>
<p>The diff included modifications to enable the dlz driver so that the vanilla codes can be changed without much intervention.</p>
<p>To replicate the results, the instructions are as follows:</p>
<ul>
<li>download bind-9.4.3-P3.tar.gz </li>
<li>download mysql-bind.tar.gz </li>
<li>copy bind-9.4.3-P3.tar.gz to &lt;Base Directory&gt; </li>
<li>copy mysql-bind.tar.gz to &lt;Base Directory&gt; </li>
<li>cd &lt;Base Directory&gt; </li>
<li>tar -zxvf bind-9.4.3-P3.tar.gz </li>
<li>tar -zxvf mysql-bind.tar.gz </li>
<li>patch -p0 &lt; ../allpatch.diff </li>
<li>cd bind-9.4.3-P3/bin/named/ </li>
<li>ln -s ../../../mysql-bind/mysqldb.c mysqldb.c </li>
<li>cd include/named/ </li>
<li>ln -s ../../../../../mysql-bind/mysqldb.h mysqldb.h </li>
<li>cd &lt;Base Directory&gt;/bind-9.4.3-P3 </li>
<li>./configure&#160; &#8211;disable-openssl-version-check CFLAGS=&quot;-I/usr/local/include/&quot; LDFLAGS=&quot;-L/usr/local/lib -lGeoIP&quot; </li>
<li>make </li>
<li>sudo make install </li>
</ul>
<p>The software requirements before the software to compile is that the geoIP API must be installed.</p>
<p>The files:</p>
<p>- <a title="Bind 9.4.3-P3" href="https://www.isc.org/downloadables/11" target="_blank">Bind 9.4.3-P3</a></p>
<p>- <a title="MySQL-BIND DLZ" href="http://sourceforge.net/projects/mysql-bind/files/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz/download" target="_blank">MySQL-BIND DLZ</a></p>
<p>- <a href="http://goes-gsoc.zerothree.net/files/2009/08/dns.diff" target="_blank">THE patch</a>: </p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/08/02/generated-diff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Config Gen</title>
		<link>http://goes-gsoc.zerothree.net/2009/07/28/config-gen/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/07/28/config-gen/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:18:54 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=138</guid>
		<description><![CDATA[completed the prototype of the configuration generator so that it can be used to update Bind. When a new zone A.K.A domain is added, or a new view is added, the configuration file for Bind must be changed in addition to storing the records in the database. Otherwise, Bind would simply not know of their [...]]]></description>
			<content:encoded><![CDATA[<p>completed the prototype of the configuration generator so that it can be used to update Bind.</p>
<p>When a new zone A.K.A domain is added, or a new view is added, the configuration file for Bind must be changed in addition to storing the records in the database. Otherwise, Bind would simply not know of their existence.</p>
<p>What the configuration generator does is to generate the configuration file based on the views that should be available and add the zones in the database to the view. Very view configuration will have the same set of zones, except that the zones in different views would look up different database table to use records configured for different region or country.</p>
<p>The last but important configuration would be the match statement. It provides the interface to the geoip elements. In summary, matching the ip of the client to the country. E.g. all ip from Australia would use the view that matches country_AU.</p>
<p>The PHP script would then be able to output the configuration in the HTML format for display, with all the menus and links etc. Or, it could output in text file format so that the output can be easily downloaded to the server (wget or curl). The MD5 will also be available. </p>
<p><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="configgen" src="http://goes-gsoc.zerothree.net/files/2009/07/configgen.jpg" width="554" height="382" /></p>
<p>To allow the “match” to be stored in database, i loaded all the possible country from geoip’s database into a table in the database. By using a join table to join the viewname to the countryname, the web ui now knows which view would match which country. The join table is used instead of simply adding a column so that a single view can match multiple countries.</p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/07/28/config-gen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>22 July 2009</title>
		<link>http://goes-gsoc.zerothree.net/2009/07/22/22-july-2009/</link>
		<comments>http://goes-gsoc.zerothree.net/2009/07/22/22-july-2009/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 15:10:47 +0000</pubDate>
		<dc:creator>Jia Jun</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://goes-gsoc1.zerothree.net/?p=136</guid>
		<description><![CDATA[can’t wait to put these stuff into real use. Trying to validate the code as much as i can. The Bind portion seems fine.]]></description>
			<content:encoded><![CDATA[<p>can’t wait to put these stuff into real use. <img src='http://goes-gsoc.zerothree.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Trying to validate the code as much as i can. The Bind portion seems fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://goes-gsoc.zerothree.net/2009/07/22/22-july-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
