<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-17722847</id><updated>2008-07-16T08:20:51.542-07:00</updated><title type='text'>mathie's tech+business bits</title><link rel='alternate' type='text/html' href='http://blog.trungson.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.trungson.com/feed.xml'/><author><name>trungson</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>180</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17722847.post-2389411892234458034</id><published>2008-07-16T08:18:00.000-07:00</published><updated>2008-07-16T08:20:51.574-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><title type='text'>Linux CentOS - Kernel panic</title><content type='html'>This looks like an error with memory by sim. Anyone has a better clue? The kernel version is 2.6.9-67.0.4.EL, then we rebooted and upgraded to 2.6.9-67.0.20.EL. Any kernel bug I should be aware of?

&lt;pre&gt;
Jul 13 04:03:13 host syslogd 1.4.1: restart.
Jul 16 08:00:01 host kernel: swap_free: Unused swap offset entry 00010000
Jul 16 08:00:01 host kernel: swap_free: Unused swap offset entry 00010000
Jul 16 08:45:01 host kernel: Unable to handle kernel paging request at virtual address 313a3921
Jul 16 08:45:01 host kernel:  printing eip:
Jul 16 08:45:01 host kernel: c015eebb
Jul 16 08:45:01 host kernel: *pde = 00000000
Jul 16 08:45:01 host kernel: Oops: 0000 [#1]
Jul 16 08:45:01 host kernel: Modules linked in: ip_vs_wrr ip_vs md5 ipv6 ipt_TOS iptable_mangle ip_conntrack_ftp ip_conntrack_irc ipt_REJECT ipt_LOG ipt_limit
iptable_filter ipt_multiport ipt_state ip_conntrack ip_tables autofs4 sunrpc dm_mirror dm_mod button battery ac parport_pc parport 8139too mii ext3 jbd
Jul 16 08:45:01 host kernel: CPU:    0
Jul 16 08:45:01 host kernel: EIP:    0060:[&lt;c015eebb&gt;]    Not tainted VLI
Jul 16 08:45:01 host kernel: EFLAGS: 00010202   (2.6.9-67.0.4.EL)
Jul 16 08:45:01 host kernel: EIP is at find_vma+0x29/0x4d
Jul 16 08:45:01 host kernel: eax: 313a3919   ebx: 00c8479c   ecx: 313a3931   edx: c97ec6b4
Jul 16 08:45:01 host kernel: esi: de5b40a0   edi: c8929360   ebp: bff08518   esp: c85dcef4
Jul 16 08:45:01 host kernel: ds: 007b   es: 007b   ss: 0068
Jul 16 08:45:01 host kernel: Process sim (pid: 6909, threadinfo=c85dc000 task=c8929360)
Jul 16 08:45:01 host kernel: Stack: de5b40a0 de5b40d0 c011d901 00000000 00c8479c c85dcfc4 c032ebbf 00000007
Jul 16 08:45:01 host kernel:        0000000e 0000000b 00000000 00000000 00000000 00000000 00000000 00030001
Jul 16 08:45:01 host kernel:        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 16 08:45:01 host kernel: Call Trace:
Jul 16 08:45:01 host kernel:  [&lt;c011d901&gt;] do_page_fault+0x114/0x4dc
Jul 16 08:45:01 host kernel:  [&lt;c011d7ed&gt;] do_page_fault+0x0/0x4dc
Jul 16 08:45:01 host kernel:  [&lt;c031e383&gt;] error_code+0x2f/0x38
Jul 16 08:45:01 host kernel:  [&lt;c011fb4d&gt;] schedule_tail+0xfd/0x106
Jul 16 08:45:01 host kernel:  [&lt;c011d7ed&gt;] do_page_fault+0x0/0x4dc
Jul 16 08:45:01 host kernel:  [&lt;c031e383&gt;] error_code+0x2f/0x38
Jul 16 08:45:01 host kernel: Code: 5d c3 56 89 c6 53 89 d3 31 d2 85 c0 74 3c 8b 50 08 85 d2 74 0a 39 5a 08 76 05 39 5a 04 76 2b 8b 4e 04 31 d2 85 c9 74 22 8d 4
1 e8 &lt;39&gt; 58 08 76 0c 39 58 04 89 c2 76 0c 8b 49 0c eb 03 8b 49 08 85
Jul 16 08:45:01 host kernel:  &lt;0&gt;Fatal exception: panic in 5 seconds
Jul 16 10:12:18 host syslogd 1.4.1: restart.
&lt;/pre&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/linux-centos-kernel-panic.html' title='Linux CentOS - Kernel panic'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=2389411892234458034' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/2389411892234458034'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/2389411892234458034'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-1410367463266559960</id><published>2008-07-09T16:04:00.000-07:00</published><updated>2008-07-09T16:06:36.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>jQuery, Google AJAX APIs</title><content type='html'>We recently implemented jQuery into our &lt;a href="http://www.adspeed.com/"&gt;ad server&lt;/a&gt;, majorly for future feature expansions and hopefully convert some of the existing JS enhancements using jQuery for a simpler codebase. Google AJAX API is nice but does not support SSL, which is quite inconvenient.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/jquery-google-ajax-apis.html' title='jQuery, Google AJAX APIs'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=1410367463266559960' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1410367463266559960'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1410367463266559960'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7652198445035680992</id><published>2008-07-08T09:49:00.000-07:00</published><updated>2008-07-08T09:55:52.875-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><title type='text'>Frustrations with Google AdWords</title><content type='html'>Google withholds lots of data for their own data-mining purposes. The stated level of click frauds is definitely questionable from our own experience. Don't forget to check your own click logs and adjust your account promptly or Google and their affiliates are wasting your budget. 

Their customer service representative often replies with a very long answer, but use default or template responses. Many times, the answers does not even make any sense or irrelevant to the original issues. They always blame the problems on the clients. They believe their back-end system is the most accurate and should be obeyed at all times. With this kind of quality, I strongly there is a demand for a more human and better ad service.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/frustrations-with-google-adwords.html' title='Frustrations with Google AdWords'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7652198445035680992' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7652198445035680992'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7652198445035680992'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-2089839397245923517</id><published>2008-07-07T10:40:00.000-07:00</published><updated>2008-07-07T10:51:50.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>MySQL - SHOW commands are expensive</title><content type='html'>It's convenient to display information about a table, running status, server configurations. However, it is expensive! A simple "SHOW COLUMNS FROM SomeTable" create a disk-based temporary table!!! The same for "SHOW STATUS LIKE 'Created_%'". Lesson: avoid these if you don't want to see "Created_tmp_disk_tables" and "Created_tmp_tables" counters spinning. It's not a bug but can mislead in debugging. A patch is available on 5.1.12 (not for 5.0.x though). But the lesson here is to avoid frequent calls to SHOW commands. A better solution is to have MySQL support query caching not just for SELECT... but also for SHOW COLUMNS. These queries do not change that often and can be cached effectively. You could write your own cache but having it done MySQL query caching would be a plus as well.

&lt;a href="http://bugs.mysql.com/bug.php?id=10210"&gt;http://bugs.mysql.com/bug.php?id=10210&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/mysql-show-commands-are-expensive.html' title='MySQL - SHOW commands are expensive'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=2089839397245923517' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/2089839397245923517'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/2089839397245923517'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-8981293995891299698</id><published>2008-07-02T16:16:00.000-07:00</published><updated>2008-07-02T16:19:00.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>Issue with MySQL replication</title><content type='html'>For some reasons I have not been able to pin point exactly which piece goes wrong, if a master has too many slaves, it will have quite a few issues. 1) lighttpd regularly get backend overloaded errors; 2) ping to this server will fluctuate drastically. And I don't think it's that many slaves.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/issue-with-mysql-replication.html' title='Issue with MySQL replication'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=8981293995891299698' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/8981293995891299698'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/8981293995891299698'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7061186175246563734</id><published>2008-07-02T11:56:00.000-07:00</published><updated>2008-07-02T12:03:10.811-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Windows Vista Firewall</title><content type='html'>If I didn't know, I would say it sucks and install another firewall, like ZoneAlarm for all my other XP computers. However, after an issue with delay and slow connection to localhost, I have identified the problem is with conflicting firewalls. Uninstalled ZoneAlarm, then tweak Vista Firewall, it's quite powerful (use w/ Advanced Security option). You'll be able to add/edit rules just like iptables under Linux. For my purpose, I created a trusted zone for local IP addresses (192.168.2.0/24) and things flies again. Don't use the default settings, but you don't have to do much. Just block all incoming AND outgoing for all level (Domain, Public, Private) and check those Enable rules. Only let things out/in under your control.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/windows-vista-firewall.html' title='Windows Vista Firewall'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7061186175246563734' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7061186175246563734'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7061186175246563734'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7184879623202743818</id><published>2008-07-01T17:14:00.000-07:00</published><updated>2008-07-01T17:17:54.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>SHOW TABLE STATUS FROM MyDatabaseName;</title><content type='html'>Run that query if you would like to know basic details about a database, especially the overhead to see if you would need to optimize it.

&lt;pre&gt;
Name: AdSpeedDB
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 0
Avg_row_length: 0
Data_length: 4676
Max_data_length: 281474976710655
Index_length: 3072
Data_free: 4676
Auto_increment: 221
Create_time: 2007-08-01 17:15:24
Update_time: 2008-06-03 07:26:13
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment: Ad Server
&lt;/pre&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/07/show-table-status-from-mydatabasename.html' title='SHOW TABLE STATUS FROM MyDatabaseName;'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7184879623202743818' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7184879623202743818'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7184879623202743818'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-332093239227043618</id><published>2008-05-25T21:54:00.001-07:00</published><updated>2008-05-25T21:54:48.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>MySQL database of geographical countries</title><content type='html'>&lt;textarea name="code" class="sql"&gt;

CREATE TABLE `geo_country` (
  `CountryId` int(10) unsigned NOT NULL default '0',
  `Country` varchar(100) NOT NULL default '',
  `FIPS104` char(2) NOT NULL default '',
  `ISO2` char(2) NOT NULL default '',
  `ISO3` char(3) NOT NULL default '',
  `ISON` int(10) unsigned NOT NULL default '0',
  `Internet` char(2) NOT NULL default '',
  `Capital` varchar(100) NOT NULL default '',
  `MapReference` varchar(100) NOT NULL default '',
  `NationalitySingular` varchar(100) NOT NULL default '',
  `NationalityPlural` varchar(100) NOT NULL default '',
  `Currency` varchar(100) NOT NULL default '',
  `CurrencyCode` char(3) NOT NULL default '',
  `Population` float unsigned NOT NULL default '0',
  `Comment` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`CountryId`),
  KEY `Country` (`Country`),
  KEY `Capital` (`Capital`),
  KEY `Internet` (`Internet`),
  KEY `FIPS104` (`FIPS104`),
  KEY `ISO2` (`ISO2`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Countries from GeoBytes.com';

--
-- Dumping data for table `geo_country`
--

INSERT INTO `geo_country` VALUES(1, 'Afghanistan', 'AF', 'AF', 'AFG', 4, 'AF', 'Kabul', 'Asia', 'Afghan', 'Afghans', 'Afghani', 'AFA', 2.68131e+07, '');
INSERT INTO `geo_country` VALUES(2, 'Albania', 'AL', 'AL', 'ALB', 8, 'AL', 'Tirana', 'Europe', 'Albanian', 'Albanians', 'Lek', 'ALL', 3.51048e+06, '');
INSERT INTO `geo_country` VALUES(3, 'Algeria', 'AG', 'DZ', 'DZA', 12, 'DZ', 'Algiers', 'Africa', 'Algerian', 'Algerians', 'Algerian Dinar', 'DZD', 3.17361e+07, '');
INSERT INTO `geo_country` VALUES(4, 'American Samoa', 'AQ', 'AS', 'ASM', 16, 'AS', 'Pago Pago', 'Oceania', 'American Samoan', 'American Samoans', 'US Dollar', 'USD', 67084, '');
INSERT INTO `geo_country` VALUES(5, 'Andorra', 'AN', 'AD', 'AND', 20, 'AD', 'Andorra la Vella', 'Europe', 'Andorran', 'Andorrans', 'Euro', 'EUR', 67627, '');
INSERT INTO `geo_country` VALUES(6, 'Angola', 'AO', 'AO', 'AGO', 24, 'AO', 'Luanda', 'Africa', 'Angolan', 'Angolans', 'Kwanza', 'AOA', 1.0366e+07, '');
INSERT INTO `geo_country` VALUES(7, 'Anguilla', 'AV', 'AI', 'AIA', 660, 'AI', 'The Valley', 'Central America and the Caribbean', 'Anguillan', 'Anguillans', 'East Caribbean Dollar', 'XCD', 12132, '');
INSERT INTO `geo_country` VALUES(8, 'Antarctica', 'AY', 'AQ', 'ATA', 10, 'AQ', '', 'Antarctic Region', '', '', '', '', 0, 'ISO defines as the territory south of 60 degrees south latitude');
INSERT INTO `geo_country` VALUES(9, 'Antigua and Barbuda', 'AC', 'AG', 'ATG', 28, 'AG', 'Saint John''s', 'Central America and the Caribbean', 'Antiguan and Barbudan', 'Antiguans and Barbudans', 'East Caribbean Dollar', 'XCD', 66970, '');
INSERT INTO `geo_country` VALUES(10, 'Argentina', 'AR', 'AR', 'ARG', 32, 'AR', 'Buenos Aires', 'South America', 'Argentine', 'Argentines', 'Argentine Peso', 'ARS', 3.73848e+07, '');
INSERT INTO `geo_country` VALUES(11, 'Armenia', 'AM', 'AM', 'ARM', 51, 'AM', 'Yerevan', 'Commonwealth of Independent States', 'Armenian', 'Armenians', 'Armenian Dram', 'AMD', 3.3361e+06, '');
INSERT INTO `geo_country` VALUES(12, 'Aruba', 'AA', 'AW', 'ABW', 533, 'AW', 'Oranjestad', 'Central America and the Caribbean', 'Aruban', 'Arubans', 'Aruban Guilder', 'AWG', 70007, '');
INSERT INTO `geo_country` VALUES(13, 'Ashmore and Cartier', 'AT', '--', '--', 0, '--', '', 'Southeast Asia', '', '', '', '', 0, 'ISO includes with Australia');
INSERT INTO `geo_country` VALUES(14, 'Australia', 'AS', 'AU', 'AUS', 36, 'AU', 'Canberra', 'Oceania', 'Australian', 'Australians', 'Australian dollar', 'AUD', 1.93576e+07, 'ISO includes Ashmore and Cartier Islands,Coral Sea Islands');
INSERT INTO `geo_country` VALUES(15, 'Austria', 'AU', 'AT', 'AUT', 40, 'AT', 'Vienna', 'Europe', 'Austrian', 'Austrians', 'Euro', 'EUR', 8.15084e+06, '');
INSERT INTO `geo_country` VALUES(16, 'Azerbaijan', 'AJ', 'AZ', 'AZE', 31, 'AZ', 'Baku (Baki)', 'Commonwealth of Independent States', 'Azerbaijani', 'Azerbaijanis', 'Azerbaijani Manat', 'AZM', 7.77109e+06, '');
INSERT INTO `geo_country` VALUES(17, 'The Bahamas', 'BF', 'BS', 'BHS', 44, 'BS', 'Nassau', 'Central America and the Caribbean', 'Bahamian', 'Bahamians', 'Bahamian Dollar', 'BSD', 297852, '');
INSERT INTO `geo_country` VALUES(18, 'Bahrain', 'BA', 'BH', 'BHR', 48, 'BH', 'Manama', 'Middle East', 'Bahraini', 'Bahrainis', 'Bahraini Dinar', 'BHD', 645361, '');
INSERT INTO `geo_country` VALUES(19, 'Baker Island', 'FQ', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(20, 'Bangladesh', 'BG', 'BD', 'BGD', 50, 'BD', 'Dhaka', 'Asia', 'Bangladeshi', 'Bangladeshis', 'Taka', 'BDT', 1.3127e+08, '');
INSERT INTO `geo_country` VALUES(21, 'Barbados', 'BB', 'BB', 'BRB', 52, 'BB', 'Bridgetown', 'Central America and the Caribbean', 'Barbadian', 'Barbadians', 'Barbados Dollar', 'BBD', 275330, '');
INSERT INTO `geo_country` VALUES(22, 'Bassas da India', 'BS', '--', '--', 0, '--', '', 'Africa', '', '', '', '', 0, 'ISO includes with the Miscellaneous (French) Indian Ocean Islands');
INSERT INTO `geo_country` VALUES(23, 'Belarus', 'BO', 'BY', 'BLR', 112, 'BY', 'Minsk', 'Commonwealth of Independent States', 'Belarusian', 'Belarusians', 'Belarussian Ruble', 'BYR', 1.03502e+07, '');
INSERT INTO `geo_country` VALUES(24, 'Belgium', 'BE', 'BE', 'BEL', 56, 'BE', 'Brussels', 'Europe', 'Belgian', 'Belgians', 'Euro', 'EUR', 1.02588e+07, '');
INSERT INTO `geo_country` VALUES(25, 'Belize', 'BH', 'BZ', 'BLZ', 84, 'BZ', 'Belmopan', 'Central America and the Caribbean', 'Belizean', 'Belizeans', 'Belize Dollar', 'BZD', 256062, '');
INSERT INTO `geo_country` VALUES(26, 'Benin', 'BN', 'BJ', 'BEN', 204, 'BJ', 'Porto-Novo', 'Africa', 'Beninese', 'Beninese', 'CFA Franc BCEAO', 'XOF', 6.59078e+06, '');
INSERT INTO `geo_country` VALUES(27, 'Bermuda', 'BD', 'BM', 'BMU', 60, 'BM', 'Hamilton', 'North America', 'Bermudian', 'Bermudians', 'Bermudian Dollar', 'BMD', 63503, '');
INSERT INTO `geo_country` VALUES(28, 'Bhutan', 'BT', 'BT', 'BTN', 64, 'BT', 'Thimphu', 'Asia', 'Bhutanese', 'Bhutanese', 'Ngultrum', 'BTN', 2.04941e+06, '');
INSERT INTO `geo_country` VALUES(29, 'Bolivia', 'BL', 'BO', 'BOL', 68, 'BO', 'La Paz /Sucre', 'South America', 'Bolivian', 'Bolivians', 'Boliviano', 'BOB', 8.30046e+06, '');
INSERT INTO `geo_country` VALUES(30, 'Bosnia and Herzegovina', 'BK', 'BA', 'BIH', 70, 'BA', 'Sarajevo', 'Bosnia and Herzegovina, Europe', 'Bosnian and Herzegovinian', 'Bosnians and Herzegovinians', 'Convertible Marka', 'BAM', 3.9222e+06, '');
INSERT INTO `geo_country` VALUES(31, 'Botswana', 'BC', 'BW', 'BWA', 72, 'BW', 'Gaborone', 'Africa', 'Motswana', 'Batswana', 'Pula', 'BWP', 1.58612e+06, '');
INSERT INTO `geo_country` VALUES(32, 'Bouvet Island', 'BV', 'BV', 'BVT', 74, 'BV', '', 'Antarctic Region', '', '', 'Norwegian Krone', 'NOK', 0, '');
INSERT INTO `geo_country` VALUES(33, 'Brazil', 'BR', 'BR', 'BRA', 76, 'BR', 'Brasilia', 'South America', 'Brazilian', 'Brazilians', 'Brazilian Real', 'BRL', 1.74469e+08, '');
INSERT INTO `geo_country` VALUES(34, 'British Indian Ocean Territory', 'IO', 'IO', 'IOT', 86, 'IO', '', 'World', '', '', 'US Dollar', 'USD', 0, '');
INSERT INTO `geo_country` VALUES(35, 'British Virgin Islands', 'VI', 'VG', 'VGB', 92, 'VG', 'Road Town', 'Central America and the Caribbean', 'British Virgin Islander', 'British Virgin Islanders', 'US Dollar', 'USD', 20812, '');
INSERT INTO `geo_country` VALUES(36, 'Brunei Darussalam', 'BX', 'BN', 'BRN', 96, 'BN', '', '', '', '', 'Brunei Dollar', 'BND', 0, '');
INSERT INTO `geo_country` VALUES(37, 'Bulgaria', 'BU', 'BG', 'BGR', 100, 'BG', 'Sofia', 'Europe', 'Bulgarian', 'Bulgarians', 'Lev', 'BGL', 7.7075e+06, '');
INSERT INTO `geo_country` VALUES(38, 'Burkina Faso', 'UV', 'BF', 'BFA', 854, 'BF', 'Ouagadougou', 'Africa', 'Burkinabe', 'Burkinabe', 'CFA Franc BCEAO', 'XOF', 1.22723e+07, '');
INSERT INTO `geo_country` VALUES(39, 'Burma', 'BM', 'MM', 'MMR', 104, 'MM', 'Rangoon', 'Southeast Asia', 'Burmese', 'Burmese', 'kyat', 'MMK', 4.19947e+07, 'ISO uses the name Myanmar');
INSERT INTO `geo_country` VALUES(40, 'Burundi', 'BY', 'BI', 'BDI', 108, 'BI', 'Bujumbura', 'Africa', 'Burundi', 'Burundians', 'Burundi Franc', 'BIF', 6.2239e+06, '');
INSERT INTO `geo_country` VALUES(41, 'Cambodia', 'CB', 'KH', 'KHM', 116, 'KH', 'Phnom Penh', 'Southeast Asia', 'Cambodian', 'Cambodians', 'Riel', 'KHR', 1.24915e+07, '');
INSERT INTO `geo_country` VALUES(42, 'Cameroon', 'CM', 'CM', 'CMR', 120, 'CM', 'Yaounde', 'Africa', 'Cameroonian', 'Cameroonians', 'CFA Franc BEAC', 'XAF', 1.58032e+07, '');
INSERT INTO `geo_country` VALUES(43, 'Canada', 'CA', 'CA', 'CAN', 124, 'CA', 'Ottawa', 'North America', 'Canadian', 'Canadians', 'Canadian Dollar', 'CAD', 3.15928e+07, '');
INSERT INTO `geo_country` VALUES(44, 'Cape Verde', 'CV', 'CV', 'CPV', 132, 'CV', 'Praia', 'World', 'Cape Verdean', 'Cape Verdeans', 'Cape Verdean Escudo', 'CVE', 405163, '');
INSERT INTO `geo_country` VALUES(45, 'Cayman Islands', 'CJ', 'KY', 'CYM', 136, 'KY', 'George Town', 'Central America and the Caribbean', 'Caymanian', 'Caymanians', 'Cayman Islands Dollar', 'KYD', 35527, '');
INSERT INTO `geo_country` VALUES(46, 'Central African Republic', 'CT', 'CF', 'CAF', 140, 'CF', 'Bangui', 'Africa', 'Central African', 'Central Africans', 'CFA Franc BEAC', 'XAF', 3.57688e+06, '');
INSERT INTO `geo_country` VALUES(47, 'Chad', 'CD', 'TD', 'TCD', 148, 'TD', 'N''Djamena', 'Africa', 'Chadian', 'Chadians', 'CFA Franc BEAC', 'XAF', 8.70708e+06, '');
INSERT INTO `geo_country` VALUES(48, 'Chile', 'CI', 'CL', 'CHL', 152, 'CL', 'Santiago', 'South America', 'Chilean', 'Chileans', 'Chilean Peso', 'CLP', 1.53285e+07, '');
INSERT INTO `geo_country` VALUES(49, 'China', 'CH', 'CN', 'CHN', 156, 'CN', 'Beijing', 'Asia', 'Chinese', 'Chinese', 'Yuan Renminbi', 'CNY', 1.27311e+09, 'see also Taiwan');
INSERT INTO `geo_country` VALUES(50, 'Christmas Island', 'KT', 'CX', 'CXR', 162, 'CX', 'The Settlement', 'Southeast Asia', 'Christmas Island', 'Christmas Islanders', 'Australian Dollar', 'AUD', 2771, '');
INSERT INTO `geo_country` VALUES(51, 'Clipperton Island', 'IP', '--', '--', 0, '--', '', 'World', '', '', '', '', 0, 'ISO includes with French Polynesia');
INSERT INTO `geo_country` VALUES(52, 'Cocos (Keeling) Islands', 'CK', 'CC', 'CCK', 166, 'CC', 'West Island', 'Southeast Asia', 'Cocos Islander', 'Cocos Islanders', 'Australian Dollar', 'AUD', 633, '');
INSERT INTO `geo_country` VALUES(53, 'Colombia', 'CO', 'CO', 'COL', 170, 'CO', 'Bogota', 'South America, Central America and the Caribbean', 'Colombian', 'Colombians', 'Colombian Peso', 'COP', 4.03494e+07, '');
INSERT INTO `geo_country` VALUES(54, 'Comoros', 'CN', 'KM', 'COM', 174, 'KM', 'Moroni', 'Africa', 'Comoran', 'Comorans', 'Comoro Franc', 'KMF', 596202, '');
INSERT INTO `geo_country` VALUES(55, 'Congo, Democratic Republic of the', 'CG', 'CD', 'COD', 180, 'CD', 'Kinshasa', 'Africa', 'Congolese', 'Congolese', 'Franc Congolais', 'CDF', 5.36247e+07, 'formerly Zaire');
INSERT INTO `geo_country` VALUES(56, 'Congo, Republic of the', 'CF', 'CG', 'COG', 178, 'CG', 'Brazzaville', 'Africa', 'Congolese', 'Congolese', 'CFA Franc BEAC', 'XAF', 2.89434e+06, '');
INSERT INTO `geo_country` VALUES(57, 'Cook Islands', 'CW', 'CK', 'COK', 184, 'CK', 'Avarua', 'Oceania', 'Cook Islander', 'Cook Islanders', 'New Zealand Dollar', 'NZD', 20611, '');
INSERT INTO `geo_country` VALUES(58, 'Coral Sea Islands', 'CR', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 0, 'ISO includes with Australia');
INSERT INTO `geo_country` VALUES(59, 'Costa Rica', 'CS', 'CR', 'CRI', 188, 'CR', 'San Jose', 'Central America and the Caribbean', 'Costa Rican', 'Costa Ricans', 'Costa Rican Colon', 'CRC', 3.77306e+06, '');
INSERT INTO `geo_country` VALUES(60, 'Cote d''Ivoire', 'IV', 'CI', 'CIV', 384, 'CI', 'Yamoussoukro', 'Africa', 'Ivorian', 'Ivorians', 'CFA Franc BCEAO', 'XOF', 1.63932e+07, '');
INSERT INTO `geo_country` VALUES(61, 'Croatia', 'HR', 'HR', 'HRV', 191, 'HR', 'Zagreb', 'Europe', 'Croatian', 'Croats', 'Kuna', 'HRK', 4.33414e+06, '');
INSERT INTO `geo_country` VALUES(62, 'Cuba', 'CU', 'CU', 'CUB', 192, 'CU', 'Havana', 'Central America and the Caribbean', 'Cuban', 'Cubans', 'Cuban Peso', 'CUP', 1.1184e+07, '');
INSERT INTO `geo_country` VALUES(63, 'Cyprus', 'CY', 'CY', 'CYP', 196, 'CY', 'Nicosia', 'Middle East', 'Cypriot', 'Cypriots', 'Cyprus Pound', 'CYP', 762887, '');
INSERT INTO `geo_country` VALUES(64, 'Czech Republic', 'EZ', 'CZ', 'CZE', 203, 'CZ', 'Prague', 'Europe', 'Czech', 'Czechs', 'Czech Koruna', 'CZK', 1.02642e+07, '');
INSERT INTO `geo_country` VALUES(65, 'Denmark', 'DA', 'DK', 'DNK', 208, 'DK', 'Copenhagen', 'Europe', 'Danish', 'Danes', 'Danish Krone', 'DKK', 5.35282e+06, '');
INSERT INTO `geo_country` VALUES(66, 'Djibouti', 'DJ', 'DJ', 'DJI', 262, 'DJ', 'Djibouti', 'Africa', 'Djiboutian', 'Djiboutians', 'Djibouti Franc', 'DJF', 460700, '');
INSERT INTO `geo_country` VALUES(67, 'Dominica', 'DO', 'DM', 'DMA', 212, 'DM', 'Roseau', 'Central America and the Caribbean', 'Dominican', 'Dominicans', 'East Caribbean Dollar', 'XCD', 70786, '');
INSERT INTO `geo_country` VALUES(68, 'Dominican Republic', 'DR', 'DO', 'DOM', 214, 'DO', 'Santo Domingo', 'Central America and the Caribbean', 'Dominican', 'Dominicans', 'Dominican Peso', 'DOP', 8.58148e+06, '');
INSERT INTO `geo_country` VALUES(69, 'East Timor', 'TT', 'TL', 'TLS', 626, 'TP', '', '', '', '', 'Timor Escudo', 'TPE', 0, 'NULL');
INSERT INTO `geo_country` VALUES(70, 'Ecuador', 'EC', 'EC', 'ECU', 218, 'EC', 'Quito', 'South America', 'Ecuadorian', 'Ecuadorians', 'US Dollar', 'USD', 1.3184e+07, '');
INSERT INTO `geo_country` VALUES(71, 'Egypt', 'EG', 'EG', 'EGY', 818, 'EG', 'Cairo', 'Africa', 'Egyptian', 'Egyptians', 'Egyptian Pound', 'EGP', 6.95366e+07, '');
INSERT INTO `geo_country` VALUES(72, 'El Salvador', 'ES', 'SV', 'SLV', 222, 'SV', 'San Salvador', 'Central America and the Caribbean', 'Salvadoran', 'Salvadorans', 'El Salvador Colon', 'SVC', 6.23766e+06, '');
INSERT INTO `geo_country` VALUES(73, 'Equatorial Guinea', 'EK', 'GQ', 'GNQ', 226, 'GQ', 'Malabo', 'Africa', 'Equatorial Guinean', 'Equatorial Guineans', 'CFA Franc BEAC', 'XAF', 486060, '');
INSERT INTO `geo_country` VALUES(74, 'Eritrea', 'ER', 'ER', 'ERI', 232, 'ER', 'Asmara', 'Africa', 'Eritrean', 'Eritreans', 'Nakfa', 'ERN', 4.29827e+06, '');
INSERT INTO `geo_country` VALUES(75, 'Estonia', 'EN', 'EE', 'EST', 233, 'EE', 'Tallinn', 'Europe', 'Estonian', 'Estonians', 'Kroon', 'EEK', 1.42332e+06, '');
INSERT INTO `geo_country` VALUES(76, 'Ethiopia', 'ET', 'ET', 'ETH', 231, 'ET', 'Addis Ababa', 'Africa', 'Ethiopian', 'Ethiopians', 'Ethiopian Birr', 'ETB', 6.58919e+07, '');
INSERT INTO `geo_country` VALUES(77, 'Europa Island', 'EU', '--', '--', 0, '--', '', 'Africa', '', '', '', '', 0, 'ISO includes with the Miscellaneous (French) Indian Ocean Islands');
INSERT INTO `geo_country` VALUES(78, 'Falkland Islands (Islas Malvinas)', 'FK', 'FK', 'FLK', 238, 'FK', 'Stanley', 'South America', 'Falkland Island', 'Falkland Islanders', 'Falkland Islands Pound', 'FKP', 2895, '');
INSERT INTO `geo_country` VALUES(79, 'Faroe Islands', 'FO', 'FO', 'FRO', 234, 'FO', 'Torshavn', 'Europe', 'Faroese', 'Faroese', 'Danish Krone', 'DKK', 45661, '');
INSERT INTO `geo_country` VALUES(80, 'Fiji', 'FJ', 'FJ', 'FJI', 242, 'FJ', 'Suva', 'Oceania', 'Fijian', 'Fijians', 'Fijian Dollar', 'FJD', 844330, '');
INSERT INTO `geo_country` VALUES(81, 'Finland', 'FI', 'FI', 'FIN', 246, 'FI', 'Helsinki', 'Europe', 'Finnish', 'Finns', 'Euro', 'EUR', 5.17578e+06, '');
INSERT INTO `geo_country` VALUES(82, 'France', 'FR', 'FR', 'FRA', 250, 'FR', 'Paris', 'Europe', 'Frenchman', 'Frenchmen', 'Euro', 'EUR', 5.95512e+07, '');
INSERT INTO `geo_country` VALUES(83, 'France, Metropolitan', '--', '--', '--', 0, 'FX', '', '', '', '', 'Euro', 'EUR', 0, 'ISO limits to the European part of France, excluding French Guiana, French Polynesia, French Souther');
INSERT INTO `geo_country` VALUES(84, 'French Guiana', 'FG', 'GF', 'GUF', 254, 'GF', 'Cayenne', 'South America', 'French Guianese', 'French Guianese', 'Euro', 'EUR', 177562, '');
INSERT INTO `geo_country` VALUES(85, 'French Polynesia', 'FP', 'PF', 'PYF', 258, 'PF', 'Papeete', 'Oceania', 'French Polynesian', 'French Polynesians', 'CFP Franc', 'XPF', 253506, 'ISO includes Clipperton Island');
INSERT INTO `geo_country` VALUES(86, 'French Southern and Antarctic Lands', 'FS', 'TF', 'ATF', 260, 'TF', '', 'Antarctic Region', '', '', 'Euro', 'EUR', 0, 'FIPS 10-4 does not include the French-claimed portion of Antarctica (Terre Adelie)');
INSERT INTO `geo_country` VALUES(87, 'Gabon', 'GB', 'GA', 'GAB', 266, 'GA', 'Libreville', 'Africa', 'Gabonese', 'Gabonese', 'CFA Franc BEAC', 'XAF', 1.22118e+06, '');
INSERT INTO `geo_country` VALUES(88, 'The Gambia', 'GA', 'GM', 'GMB', 270, 'GM', 'Banjul', 'Africa', 'Gambian', 'Gambians', 'Dalasi', 'GMD', 1.4112e+06, '');
INSERT INTO `geo_country` VALUES(89, 'Gaza Strip', 'GZ', '--', '--', 0, '--', '', 'Middle East', '', '', 'New Israeli Shekel', 'ILS', 1.17812e+06, '');
INSERT INTO `geo_country` VALUES(90, 'Georgia', 'GG', 'GE', 'GEO', 268, 'GE', 'T''bilisi', 'Commonwealth of Independent States', 'Georgian', 'Georgians', 'Lari', 'GEL', 4.98928e+06, '');
INSERT INTO `geo_country` VALUES(91, 'Germany', 'GM', 'DE', 'DEU', 276, 'DE', 'Berlin', 'Europe', 'German', 'Germans', 'Euro', 'EUR', 8.30295e+07, '');
INSERT INTO `geo_country` VALUES(92, 'Ghana', 'GH', 'GH', 'GHA', 288, 'GH', 'Accra', 'Africa', 'Ghanaian', 'Ghanaians', 'Cedi', 'GHC', 1.9894e+07, '');
INSERT INTO `geo_country` VALUES(93, 'Gibraltar', 'GI', 'GI', 'GIB', 292, 'GI', 'Gibraltar', 'Europe', 'Gibraltar', 'Gibraltarians', 'Gibraltar Pound', 'GIP', 27649, '');
INSERT INTO `geo_country` VALUES(94, 'Glorioso Islands', 'GO', '--', '--', 0, '--', '', 'Africa', '', '', '', '', 0, 'ISO includes with the Miscellaneous (French) Indian Ocean Islands');
INSERT INTO `geo_country` VALUES(95, 'Greece', 'GR', 'GR', 'GRC', 300, 'GR', 'Athens', 'Europe', 'Greek', 'Greeks', 'Euro', 'EUR', 1.06238e+07, '');
INSERT INTO `geo_country` VALUES(96, 'Greenland', 'GL', 'GL', 'GRL', 304, 'GL', 'Nuuk', 'Arctic Region', 'Greenlandic', 'Greenlanders', 'Danish Krone', 'DKK', 56352, '');
INSERT INTO `geo_country` VALUES(97, 'Grenada', 'GJ', 'GD', 'GRD', 308, 'GD', 'Saint George''s', 'Central America and the Caribbean', 'Grenadian', 'Grenadians', 'East Caribbean Dollar', 'XCD', 89227, '');
INSERT INTO `geo_country` VALUES(98, 'Guadeloupe', 'GP', 'GP', 'GLP', 312, 'GP', 'Basse-Terre', 'Central America and the Caribbean', 'Guadeloupe', 'Guadeloupians', 'Euro', 'EUR', 431170, '');
INSERT INTO `geo_country` VALUES(99, 'Guam', 'GQ', 'GU', 'GUM', 316, 'GU', 'Hagatna', 'Oceania', 'Guamanian', 'Guamanians', 'US Dollar', 'USD', 157557, '');
INSERT INTO `geo_country` VALUES(100, 'Guatemala', 'GT', 'GT', 'GTM', 320, 'GT', 'Guatemala', 'Central America and the Caribbean', 'Guatemalan', 'Guatemalans', 'Quetzal', 'GTQ', 1.29744e+07, '');
INSERT INTO `geo_country` VALUES(101, 'Guernsey', 'GK', '--', '--', 0, 'GG', 'Saint Peter Port', 'Europe', 'Channel Islander', 'Channel Islanders', 'Pound Sterling', 'GBP', 64342, 'ISO includes with the United Kingdom');
INSERT INTO `geo_country` VALUES(102, 'Guinea', 'GV', 'GN', 'GIN', 324, 'GN', 'Conakry', 'Africa', 'Guinean', 'Guineans', 'Guinean Franc', 'GNF', 7.61387e+06, '');
INSERT INTO `geo_country` VALUES(103, 'Guinea-Bissau', 'PU', 'GW', 'GNB', 624, 'GW', 'Bissau', 'Africa', 'Guinean', 'Guineans', 'CFA Franc BCEAO', 'XOF', 1.31582e+06, '');
INSERT INTO `geo_country` VALUES(104, 'Guyana', 'GY', 'GY', 'GUY', 328, 'GY', 'Georgetown', 'South America', 'Guyanese', 'Guyanese', 'Guyana Dollar', 'GYD', 697181, '');
INSERT INTO `geo_country` VALUES(105, 'Haiti', 'HA', 'HT', 'HTI', 332, 'HT', 'Port-au-Prince', 'Central America and the Caribbean', 'Haitian', 'Haitians', 'Gourde', 'HTG', 6.96455e+06, '');
INSERT INTO `geo_country` VALUES(106, 'Heard Island and McDonald Islands', 'HM', 'HM', 'HMD', 334, 'HM', '', 'Antarctic Region', '', '', 'Australian Dollar', 'AUD', 0, '');
INSERT INTO `geo_country` VALUES(107, 'Holy See (Vatican City)', 'VT', 'VA', 'VAT', 336, 'VA', 'Vatican City', 'Europe', '', '', 'Euro', 'EUR', 890, '');
INSERT INTO `geo_country` VALUES(108, 'Honduras', 'HO', 'HN', 'HND', 340, 'HN', 'Tegucigalpa', 'Central America and the Caribbean', 'Honduran', 'Hondurans', 'Lempira', 'HNL', 6.40605e+06, '');
INSERT INTO `geo_country` VALUES(109, 'Hong Kong (SAR)', 'HK', 'HK', 'HKG', 344, 'HK', '', 'Southeast Asia', '', '', 'Hong Kong Dollar', 'HKD', 0, '');
INSERT INTO `geo_country` VALUES(110, 'Howland Island', 'HQ', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 7.2105e+06, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(111, 'Hungary', 'HU', 'HU', 'HUN', 348, 'HU', 'Budapest', 'Europe', 'Hungarian', 'Hungarians', 'Forint', 'HUF', 1.0106e+07, '');
INSERT INTO `geo_country` VALUES(112, 'Iceland', 'IC', 'IS', 'ISL', 352, 'IS', 'Reykjavik', 'Arctic Region', 'Icelandic', 'Icelanders', 'Iceland Krona', 'ISK', 277906, '');
INSERT INTO `geo_country` VALUES(113, 'India', 'IN', 'IN', 'IND', 356, 'IN', 'New Delhi', 'Asia', 'Indian', 'Indians', 'Indian Rupee', 'INR', 1.02999e+09, '');
INSERT INTO `geo_country` VALUES(114, 'Indonesia', 'ID', 'ID', 'IDN', 360, 'ID', 'Jakarta', 'Southeast Asia', 'Indonesian', 'Indonesians', 'Rupiah', 'IDR', 2.28438e+08, '');
INSERT INTO `geo_country` VALUES(115, 'Iran', 'IR', 'IR', 'IRN', 364, 'IR', 'Tehran', 'Middle East', 'Iranian', 'Iranians', 'Iranian Rial', 'IRR', 6.6129e+07, '');
INSERT INTO `geo_country` VALUES(116, 'Iraq', 'IZ', 'IQ', 'IRQ', 368, 'IQ', 'Baghdad', 'Middle East', 'Iraqi', 'Iraqis', 'Iraqi Dinar', 'IQD', 2.3332e+07, '');
INSERT INTO `geo_country` VALUES(117, 'Ireland', 'EI', 'IE', 'IRL', 372, 'IE', 'Dublin', 'Europe', 'Irish', 'Irishmen', 'Euro', 'EUR', 3.84084e+06, '');
INSERT INTO `geo_country` VALUES(118, 'Israel', 'IS', 'IL', 'ISR', 376, 'IL', 'Jerusalem', 'Middle East', 'Israeli', 'Israelis', 'New Israeli Sheqel', 'ILS', 5.93809e+06, '');
INSERT INTO `geo_country` VALUES(119, 'Italy', 'IT', 'IT', 'ITA', 380, 'IT', 'Rome', 'Europe', 'Italian', 'Italians', 'Euro', 'EUR', 5.76798e+07, '');
INSERT INTO `geo_country` VALUES(120, 'Jamaica', 'JM', 'JM', 'JAM', 388, 'JM', 'Kingston', 'Central America and the Caribbean', 'Jamaican', 'Jamaicans', 'Jamaican dollar', 'JMD', 2.66564e+06, '');
INSERT INTO `geo_country` VALUES(121, 'Jan Mayen', 'JN', '--', '--', 0, '--', '', 'Arctic Region', '', '', 'Norway Kroner', 'NOK', 0, 'ISO includes with Svalbard');
INSERT INTO `geo_country` VALUES(122, 'Japan', 'JA', 'JP', 'JPN', 392, 'JP', 'Tokyo', 'Asia', 'Japanese', 'Japanese', 'Yen', 'JPY', 1.26772e+08, '');
INSERT INTO `geo_country` VALUES(123, 'Jarvis Island', 'DQ', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(124, 'Jersey', 'JE', '--', '--', 0, 'JE', 'Saint Helier', 'Europe', 'Channel Islander', 'Channel Islanders', 'Pound Sterling', 'GBP', 89361, 'ISO includes with the United Kingdom');
INSERT INTO `geo_country` VALUES(125, 'Johnston Atoll', 'JQ', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(126, 'Jordan', 'JO', 'JO', 'JOR', 400, 'JO', 'Amman', 'Middle East', 'Jordanian', 'Jordanians', 'Jordanian Dinar', 'JOD', 5.15338e+06, '');
INSERT INTO `geo_country` VALUES(127, 'Juan de Nova Island', 'JU', '--', '--', 0, '--', '', 'Africa', '', '', '', '', 0, 'ISO includes with the Miscellaneous (French) Indian Ocean Islands');
INSERT INTO `geo_country` VALUES(128, 'Kazakhstan', 'KZ', 'KZ', 'KAZ', 398, 'KZ', 'Astana', 'Commonwealth of Independent States', 'Kazakhstani', 'Kazakhstanis', 'Tenge', 'KZT', 1.67313e+07, '');
INSERT INTO `geo_country` VALUES(129, 'Kenya', 'KE', 'KE', 'KEN', 404, 'KE', 'Nairobi', 'Africa', 'Kenyan', 'Kenyans', 'Kenyan shilling', 'KES', 3.07659e+07, '');
INSERT INTO `geo_country` VALUES(130, 'Kingman Reef', 'KQ', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(131, 'Kiribati', 'KR', 'KI', 'KIR', 296, 'KI', 'Tarawa', 'Oceania', 'I-Kiribati', 'I-Kiribati', 'Australian dollar', 'AUD', 94149, '');
INSERT INTO `geo_country` VALUES(132, 'Korea, North', 'KN', 'KP', 'PRK', 408, 'KP', 'P''yongyang', 'Asia', 'Korean', 'Koreans', 'North Korean Won', 'KPW', 2.19682e+07, '');
INSERT INTO `geo_country` VALUES(133, 'Korea, South', 'KS', 'KR', 'KOR', 410, 'KR', 'Seoul', 'Asia', 'Korean', 'Koreans', 'Won', 'KRW', 4.79044e+07, '');
INSERT INTO `geo_country` VALUES(134, 'Kuwait', 'KU', 'KW', 'KWT', 414, 'KW', 'Kuwait', 'Middle East', 'Kuwaiti', 'Kuwaitis', 'Kuwaiti Dinar', 'KWD', 2.04196e+06, '');
INSERT INTO `geo_country` VALUES(135, 'Kyrgyzstan', 'KG', 'KG', 'KGZ', 417, 'KG', 'Bishkek', 'Commonwealth of Independent States', 'Kyrgyzstani', 'Kyrgyzstanis', 'Som', 'KGS', 4.753e+06, '');
INSERT INTO `geo_country` VALUES(136, 'Laos', 'LA', 'LA', 'LAO', 418, 'LA', 'Vientiane', 'Southeast Asia', 'Lao', 'Laos', 'Kip', 'LAK', 5.63597e+06, '');
INSERT INTO `geo_country` VALUES(137, 'Latvia', 'LG', 'LV', 'LVA', 428, 'LV', 'Riga', 'Europe', 'Latvian', 'Latvians', 'Latvian Lats', 'LVL', 2.38523e+06, '');
INSERT INTO `geo_country` VALUES(138, 'Lebanon', 'LE', 'LB', 'LBN', 422, 'LB', 'Beirut', 'Middle East', 'Lebanese', 'Lebanese', 'Lebanese Pound', 'LBP', 3.62777e+06, '');
INSERT INTO `geo_country` VALUES(139, 'Lesotho', 'LT', 'LS', 'LSO', 426, 'LS', 'Maseru', 'Africa', 'Basotho', 'Mosotho', 'Loti', 'LSL', 2.17706e+06, '');
INSERT INTO `geo_country` VALUES(140, 'Liberia', 'LI', 'LR', 'LBR', 430, 'LR', 'Monrovia', 'Africa', 'Liberian', 'Liberians', 'Liberian Dollar', 'LRD', 3.22584e+06, '');
INSERT INTO `geo_country` VALUES(141, 'Libya', 'LY', 'LY', 'LBY', 434, 'LY', 'Tripoli', 'Africa', 'Libyan', 'Libyans', 'Libyan Dinar', 'LYD', 5.2406e+06, '');
INSERT INTO `geo_country` VALUES(142, 'Liechtenstein', 'LS', 'LI', 'LIE', 438, 'LI', 'Vaduz', 'Europe', 'Liechtenstein', 'Liechtensteiners', 'Swiss Franc', 'CHF', 32528, '');
INSERT INTO `geo_country` VALUES(143, 'Lithuania', 'LH', 'LT', 'LTU', 440, 'LT', 'Vilnius', 'Europe', 'Lithuanian', 'Lithuanians', 'Lithuanian Litas', 'LTL', 3.61054e+06, '');
INSERT INTO `geo_country` VALUES(144, 'Luxembourg', 'LU', 'LU', 'LUX', 442, 'LU', 'Luxembourg', 'Europe', 'Luxembourg', 'Luxembourgers', 'Euro', 'EUR', 442972, '');
INSERT INTO `geo_country` VALUES(145, 'Macao', 'MC', 'MO', 'MAC', 446, 'MO', '', 'Southeast Asia', 'Chinese', 'Chinese', 'Pataca', 'MOP', 453733, '');
INSERT INTO `geo_country` VALUES(146, 'Macedonia, The Former Yugoslav Republic of', 'MK', 'MK', 'MKD', 807, 'MK', 'Skopje', 'Europe', 'Macedonian', 'Macedonians', 'Denar', 'MKD', 2.04621e+06, '');
INSERT INTO `geo_country` VALUES(147, 'Madagascar', 'MA', 'MG', 'MDG', 450, 'MG', 'Antananarivo', 'Africa', 'Malagasy', 'Malagasy', 'Malagasy Franc', 'MGF', 1.59826e+07, '');
INSERT INTO `geo_country` VALUES(148, 'Malawi', 'MI', 'MW', 'MWI', 454, 'MW', 'Lilongwe', 'Africa', 'Malawian', 'Malawians', 'Kwacha', 'MWK', 1.05482e+07, '');
INSERT INTO `geo_country` VALUES(149, 'Malaysia', 'MY', 'MY', 'MYS', 458, 'MY', 'Kuala Lumpur', 'Southeast Asia', 'Malaysian', 'Malaysians', 'Malaysian Ringgit', 'MYR', 2.2229e+07, '');
INSERT INTO `geo_country` VALUES(150, 'Maldives', 'MV', 'MV', 'MDV', 462, 'MV', 'Male', 'Asia', 'Maldivian', 'Maldivians', 'Rufiyaa', 'MVR', 310764, '');
INSERT INTO `geo_country` VALUES(151, 'Mali', 'ML', 'ML', 'MLI', 466, 'ML', 'Bamako', 'Africa', 'Malian', 'Malians', 'CFA Franc BCEAO', 'XOF', 1.10085e+07, '');
INSERT INTO `geo_country` VALUES(152, 'Malta', 'MT', 'MT', 'MLT', 470, 'MT', 'Valletta', 'Europe', 'Maltese', 'Maltese', 'Maltese Lira', 'MTL', 394583, '');
INSERT INTO `geo_country` VALUES(153, 'Man, Isle of', 'IM', '--', '--', 0, 'IM', 'Douglas', 'Europe', 'Manxman', 'Manxmen', 'Pound Sterling', 'GBP', 73489, 'ISO includes with the United Kingdom');
INSERT INTO `geo_country` VALUES(154, 'Marshall Islands', 'RM', 'MH', 'MHL', 584, 'MH', 'Majuro', 'Oceania', 'Marshallese', 'Marshallese', 'US Dollar', 'USD', 70822, '');
INSERT INTO `geo_country` VALUES(155, 'Martinique', 'MB', 'MQ', 'MTQ', 474, 'MQ', 'Fort-de-France', 'Central America and the Caribbean', 'Martiniquais', 'Martiniquais', 'Euro', 'EUR', 418454, '');
INSERT INTO `geo_country` VALUES(156, 'Mauritania', 'MR', 'MR', 'MRT', 478, 'MR', 'Nouakchott', 'Africa', 'Mauritanian', 'Mauritanians', 'Ouguiya', 'MRO', 2.74731e+06, '');
INSERT INTO `geo_country` VALUES(157, 'Mauritius', 'MP', 'MU', 'MUS', 480, 'MU', 'Port Louis', 'World', 'Mauritian', 'Mauritians', 'Mauritius Rupee', 'MUR', 1.18982e+06, '');
INSERT INTO `geo_country` VALUES(158, 'Mayotte', 'MF', 'YT', 'MYT', 175, 'YT', 'Mamoutzou', 'Africa', 'Mahorais', 'Mahorais', 'Euro', 'EUR', 163366, '');
INSERT INTO `geo_country` VALUES(159, 'Mexico', 'MX', 'MX', 'MEX', 484, 'MX', 'Mexico', 'North America', 'Mexican', 'Mexicans', 'Mexican Peso', 'MXN', 1.01879e+08, '');
INSERT INTO `geo_country` VALUES(160, 'Micronesia, Federated States of', 'FM', 'FM', 'FSM', 583, 'FM', 'Palikir', 'Oceania', 'Micronesian', 'Micronesians', 'US Dollar', 'USD', 134597, '');
INSERT INTO `geo_country` VALUES(161, 'Midway Islands', 'MQ', '--', '--', 0, '--', '', 'Oceania', '', '', 'United States Dollars', 'USD', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(162, 'Miscellaneous (French)', '--', '--', '--', 0, '--', '', '', '', '', '', '', 0, 'ISO includes Bassas da India, Europa Island, Glorioso Islands, Juan de Nova Island, Tromelin Island');
INSERT INTO `geo_country` VALUES(163, 'Moldova', 'MD', 'MD', 'MDA', 498, 'MD', 'Chisinau', 'Commonwealth of Independent States', 'Moldovan', 'Moldovans', 'Moldovan Leu', 'MDL', 4.43157e+06, '');
INSERT INTO `geo_country` VALUES(164, 'Monaco', 'MN', 'MC', 'MCO', 492, 'MC', 'Monaco', 'Europe', 'Monegasque', 'Monegasques', 'Euro', 'EUR', 31842, '');
INSERT INTO `geo_country` VALUES(165, 'Mongolia', 'MG', 'MN', 'MNG', 496, 'MN', 'Ulaanbaatar', 'Asia', 'Mongolian', 'Mongolians', 'Tugrik', 'MNT', 2.655e+06, '');
INSERT INTO `geo_country` VALUES(166, 'Montenegro', '--', '--', '--', 0, '--', '', '', '', '', '', '', 0, 'now included as region within Yugoslavia');
INSERT INTO `geo_country` VALUES(167, 'Montserrat', 'MH', 'MS', 'MSR', 500, 'MS', 'Plymouth', 'Central America and the Caribbean', 'Montserratian', 'Montserratians', 'East Caribbean Dollar', 'XCD', 7574, '');
INSERT INTO `geo_country` VALUES(168, 'Morocco', 'MO', 'MA', 'MAR', 504, 'MA', 'Rabat', 'Africa', 'Moroccan', 'Moroccans', 'Moroccan Dirham', 'MAD', 3.06453e+07, '');
INSERT INTO `geo_country` VALUES(169, 'Mozambique', 'MZ', 'MZ', 'MOZ', 508, 'MZ', 'Maputo', 'Africa', 'Mozambican', 'Mozambicans', 'Metical', 'MZM', 1.93711e+07, '');
INSERT INTO `geo_country` VALUES(170, 'Myanmar', '--', '--', '--', 0, '--', '', '', '', '', 'Kyat', 'MMK', 0, 'see Burma');
INSERT INTO `geo_country` VALUES(171, 'Namibia', 'WA', 'NA', 'NAM', 516, 'NA', 'Windhoek', 'Africa', 'Namibian', 'Namibians', 'Namibian Dollar', 'NAD', 1.79768e+06, '');
INSERT INTO `geo_country` VALUES(172, 'Nauru', 'NR', 'NR', 'NRU', 520, 'NR', '', 'Oceania', 'Nauruan', 'Nauruans', 'Australian Dollar', 'AUD', 12088, '');
INSERT INTO `geo_country` VALUES(173, 'Navassa Island', 'BQ', '--', '--', 0, '--', '', 'Central America and the Caribbean', '', '', '', '', 0, '');
INSERT INTO `geo_country` VALUES(174, 'Nepal', 'NP', 'NP', 'NPL', 524, 'NP', 'Kathmandu', 'Asia', 'Nepalese', 'Nepalese', 'Nepalese Rupee', 'NPR', 2.52845e+07, '');
INSERT INTO `geo_country` VALUES(175, 'Netherlands', 'NL', 'NL', 'NLD', 528, 'NL', 'Amsterdam', 'Europe', 'Dutchman', 'Dutchmen', 'Euro', 'EUR', 1.59815e+07, '');
INSERT INTO `geo_country` VALUES(176, 'Netherlands Antilles', 'NT', 'AN', 'ANT', 530, 'AN', 'Willemstad', 'Central America and the Caribbean', 'Dutch Antillean', 'Dutch Antilleans', 'Netherlands Antillean guilder', 'ANG', 212226, '');
INSERT INTO `geo_country` VALUES(177, 'New Caledonia', 'NC', 'NC', 'NCL', 540, 'NC', 'Noumea', 'Oceania', 'New Caledonian', 'New Caledonians', 'CFP Franc', 'XPF', 204863, '');
INSERT INTO `geo_country` VALUES(178, 'New Zealand', 'NZ', 'NZ', 'NZL', 554, 'NZ', 'Wellington', 'Oceania', 'New Zealand', 'New Zealanders', 'New Zealand Dollar', 'NZD', 3.86413e+06, '');
INSERT INTO `geo_country` VALUES(179, 'Nicaragua', 'NU', 'NI', 'NIC', 558, 'NI', 'Managua', 'Central America and the Caribbean', 'Nicaraguan', 'Nicaraguans', 'Cordoba Oro', 'NIO', 4.91839e+06, '');
INSERT INTO `geo_country` VALUES(180, 'Niger', 'NG', 'NE', 'NER', 562, 'NE', 'Niamey', 'Africa', 'Nigerien', 'Nigeriens', 'CFA Franc BCEAO', 'XOF', 1.03552e+07, '');
INSERT INTO `geo_country` VALUES(181, 'Nigeria', 'NI', 'NG', 'NGA', 566, 'NG', 'Abuja', 'Africa', 'Nigerian', 'Nigerians', 'Naira', 'NGN', 1.26636e+08, '');
INSERT INTO `geo_country` VALUES(182, 'Niue', 'NE', 'NU', 'NIU', 570, 'NU', 'Alofi', 'Oceania', 'Niuean', 'Niueans', 'New Zealand Dollar', 'NZD', 2124, '');
INSERT INTO `geo_country` VALUES(183, 'Norfolk Island', 'NF', 'NF', 'NFK', 574, 'NF', 'Kingston', 'Oceania', 'Norfolk Islander', 'Norfolk Islanders', 'Australian Dollar', 'AUD', 1879, '');
INSERT INTO `geo_country` VALUES(184, 'Northern Mariana Islands', 'CQ', 'MP', 'MNP', 580, 'MP', 'Saipan', 'Oceania', '', '', 'US Dollar', 'USD', 74612, '');
INSERT INTO `geo_country` VALUES(185, 'Norway', 'NO', 'NO', 'NOR', 578, 'NO', 'Oslo', 'Europe', 'Norwegian', 'Norwegians', 'Norwegian Krone', 'NOK', 4.50344e+06, '');
INSERT INTO `geo_country` VALUES(186, 'Oman', 'MU', 'OM', 'OMN', 512, 'OM', 'Muscat', 'Middle East', 'Omani', 'Omanis', 'Rial Omani', 'OMR', 2.6222e+06, '');
INSERT INTO `geo_country` VALUES(187, 'Pakistan', 'PK', 'PK', 'PAK', 586, 'PK', 'Islamabad', 'Asia', 'Pakistani', 'Pakistanis', 'Pakistan Rupee', 'PKR', 1.44617e+08, '');
INSERT INTO `geo_country` VALUES(188, 'Palau', 'PS', 'PW', 'PLW', 585, 'PW', 'Koror', 'Oceania', 'Palauan', 'Palauans', 'US Dollar', 'USD', 19092, '');
INSERT INTO `geo_country` VALUES(189, 'Palmyra Atoll', 'LQ', '--', '--', 0, '--', '', 'Oceania', '', '', '', '', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(190, 'Panama', 'PM', 'PA', 'PAN', 591, 'PA', 'Panama', 'Central America and the Caribbean', 'Panamanian', 'Panamanians', 'balboa', 'PAB', 2.84565e+06, '');
INSERT INTO `geo_country` VALUES(191, 'Papua New Guinea', 'PP', 'PG', 'PNG', 598, 'PG', 'Port Moresby', 'Oceania', 'Papua New Guinean', 'Papua New Guineans', 'Kina', 'PGK', 5.04906e+06, '');
INSERT INTO `geo_country` VALUES(192, 'Paracel Islands', 'PF', '--', '--', 0, '--', '', 'Southeast Asia', '', '', '', '', 0, '');
INSERT INTO `geo_country` VALUES(193, 'Paraguay', 'PA', 'PY', 'PRY', 600, 'PY', 'Asuncion', 'South America', 'Paraguayan', 'Paraguayans', 'Guarani', 'PYG', 5.73414e+06, '');
INSERT INTO `geo_country` VALUES(194, 'Peru', 'PE', 'PE', 'PER', 604, 'PE', 'Lima', 'South America', 'Peruvian', 'Peruvians', 'Nuevo Sol', 'PEN', 2.74839e+07, '');
INSERT INTO `geo_country` VALUES(195, 'Philippines', 'RP', 'PH', 'PHL', 608, 'PH', 'Manila', 'Southeast Asia', 'Philippine', 'Filipinos', 'Philippine Peso', 'PHP', 8.28415e+07, '');
INSERT INTO `geo_country` VALUES(196, 'Pitcairn Islands', 'PC', 'PN', 'PCN', 612, 'PN', 'Adamstown', 'Oceania', 'Pitcairn Islander', 'Pitcairn Islanders', 'New Zealand Dollar', 'NZD', 47, '');
INSERT INTO `geo_country` VALUES(197, 'Poland', 'PL', 'PL', 'POL', 616, 'PL', 'Warsaw', 'Europe', 'Polish', 'Poles', 'Zloty', 'PLN', 3.86339e+07, '');
INSERT INTO `geo_country` VALUES(198, 'Portugal', 'PO', 'PT', 'PRT', 620, 'PT', 'Lisbon', 'Europe', 'Portuguese', 'Portuguese', 'Euro', 'EUR', 1.00663e+07, '');
INSERT INTO `geo_country` VALUES(199, 'Puerto Rico', 'RQ', 'PR', 'PRI', 630, 'PR', 'San Juan', 'Central America and the Caribbean', 'Puerto Rican', 'Puerto Ricans', 'US Dollar', 'USD', 3.93732e+06, '');
INSERT INTO `geo_country` VALUES(200, 'Qatar', 'QA', 'QA', 'QAT', 634, 'QA', 'Doha', 'Middle East', 'Qatari', 'Qataris', 'Qatari Rial', 'QAR', 769152, '');
INSERT INTO `geo_country` VALUES(201, 'R?union', 'RE', 'RE', 'REU', 638, 'RE', 'Saint-Denis', 'World', 'Reunionese', 'Reunionese', 'Euro', 'EUR', 732570, '');
INSERT INTO `geo_country` VALUES(202, 'Romania', 'RO', 'RO', 'ROU', 642, 'RO', 'Bucharest', 'Europe', 'Romanian', 'Romanians', 'Leu', 'ROL', 2.2364e+07, '');
INSERT INTO `geo_country` VALUES(203, 'Russia', 'RS', 'RU', 'RUS', 643, 'RU', 'Moscow', 'Asia', 'Russian', 'Russians', 'Russian Ruble', 'RUB', 1.4547e+08, '');
INSERT INTO `geo_country` VALUES(204, 'Rwanda', 'RW', 'RW', 'RWA', 646, 'RW', 'Kigali', 'Africa', 'Rwandan', 'Rwandans', 'Rwanda Franc', 'RWF', 7.31276e+06, '');
INSERT INTO `geo_country` VALUES(205, 'Saint Helena', 'SH', 'SH', 'SHN', 654, 'SH', 'Jamestown', 'Africa', 'Saint Helenian', 'Saint Helenians', 'Saint Helenian Pound', 'SHP', 7266, '');
INSERT INTO `geo_country` VALUES(206, 'Saint Kitts and Nevis', 'SC', 'KN', 'KNA', 659, 'KN', 'Basseterre', 'Central America and the Caribbean', 'Kittitian and Nevisian', 'Kittitians and Nevisians', 'East Caribbean Dollar', 'XCD', 38756, '');
INSERT INTO `geo_country` VALUES(207, 'Saint Lucia', 'ST', 'LC', 'LCA', 662, 'LC', 'Castries', 'Central America and the Caribbean', 'Saint Lucian', 'Saint Lucians', 'East Caribbean Dollar', 'XCD', 158178, '');
INSERT INTO `geo_country` VALUES(208, 'Saint Pierre and Miquelon', 'SB', 'PM', 'SPM', 666, 'PM', 'Saint-Pierre', 'North America', 'Frenchman', 'Frenchmen', 'Euro', 'EUR', 6928, '');
INSERT INTO `geo_country` VALUES(209, 'Saint Vincent and the Grenadines', 'VC', 'VC', 'VCT', 670, 'VC', 'Kingstown', 'Central America and the Caribbean', 'Saint Vincentian', 'Saint Vincentians', 'East Caribbean Dollar', 'XCD', 115942, '');
INSERT INTO `geo_country` VALUES(210, 'Samoa', 'WS', 'WS', 'WSM', 882, 'WS', 'Apia', 'Oceania', 'Samoan', 'Samoans', 'Tala', 'WST', 179058, 'NULL');
INSERT INTO `geo_country` VALUES(211, 'San Marino', 'SM', 'SM', 'SMR', 674, 'SM', 'San Marino', 'Europe', 'Sammarinese', 'Sammarinese', 'Euro', 'EUR', 27336, '');
INSERT INTO `geo_country` VALUES(212, 'S?o Tom? and Pr?ncipe', 'TP', 'ST', 'STP', 678, 'ST', 'Sao Tome', 'Africa', 'Sao Tomean', 'Sao Tomeans', 'Dobra', 'STD', 165034, '');
INSERT INTO `geo_country` VALUES(213, 'Saudi Arabia', 'SA', 'SA', 'SAU', 682, 'SA', 'Riyadh', 'Middle East', 'Saudi Arabian', 'Saudis', 'Saudi Riyal', 'SAR', 2.27571e+07, '');
INSERT INTO `geo_country` VALUES(214, 'Senegal', 'SG', 'SN', 'SEN', 686, 'SN', 'Dakar', 'Africa', 'Senegalese', 'Senegalese', 'CFA Franc BCEAO', 'XOF', 1.02849e+07, '');
INSERT INTO `geo_country` VALUES(215, 'Serbia', '--', '--', '--', 0, '--', '', '', '', '', '', '', 0, 'now included as region within Yugoslavia');
INSERT INTO `geo_country` VALUES(216, 'Serbia and Montenegro', '--', '--', '--', 0, '--', '', '', '', '', '', '', 0, 'See Yugoslavia');
INSERT INTO `geo_country` VALUES(217, 'Seychelles', 'SE', 'SC', 'SYC', 690, 'SC', 'Victoria', 'Africa', 'Seychellois', 'Seychellois', 'Seychelles Rupee', 'SCR', 79715, '');
INSERT INTO `geo_country` VALUES(218, 'Sierra Leone', 'SL', 'SL', 'SLE', 694, 'SL', 'Freetown', 'Africa', 'Sierra Leonean', 'Sierra Leoneans', 'Leone', 'SLL', 5.42662e+06, '');
INSERT INTO `geo_country` VALUES(219, 'Singapore', 'SN', 'SG', 'SGP', 702, 'SG', 'Singapore', 'Southeast Asia', 'Singaporeian', 'Singaporeans', 'Singapore Dollar', 'SGD', 4.30042e+06, '');
INSERT INTO `geo_country` VALUES(220, 'Slovakia', 'LO', 'SK', 'SVK', 703, 'SK', 'Bratislava', 'Europe', 'Slovakian', 'Slovaks', 'Slovak Koruna', 'SKK', 5.41494e+06, '');
INSERT INTO `geo_country` VALUES(221, 'Slovenia', 'SI', 'SI', 'SVN', 705, 'SI', 'Ljubljana', 'Europe', 'Slovenian', 'Slovenes', 'Tolar', 'SIT', 1.93013e+06, '');
INSERT INTO `geo_country` VALUES(222, 'Solomon Islands', 'BP', 'SB', 'SLB', 90, 'SB', 'Honiara', 'Oceania', 'Solomon Islander', 'Solomon Islanders', 'Solomon Islands Dollar', 'SBD', 480442, '');
INSERT INTO `geo_country` VALUES(223, 'Somalia', 'SO', 'SO', 'SOM', 706, 'SO', 'Mogadishu', 'Africa', 'Somali', 'Somalis', 'Somali Shilling', 'SOS', 7.48877e+06, '');
INSERT INTO `geo_country` VALUES(224, 'South Africa', 'SF', 'ZA', 'ZAF', 710, 'ZA', 'Pretoria', 'Africa', 'South African', 'South Africans', 'Rand', 'ZAR', 4.35861e+07, '');
INSERT INTO `geo_country` VALUES(225, 'South Georgia and the South Sandwich Islands', 'SX', 'GS', 'SGS', 239, 'GS', '', 'Antarctic Region', '', '', 'Pound Sterling', 'GBP', 0, '');
INSERT INTO `geo_country` VALUES(226, 'Spain', 'SP', 'ES', 'ESP', 724, 'ES', 'Madrid', 'Europe', 'Spanish', 'Spaniards', 'Euro', 'EUR', 4.0038e+07, '');
INSERT INTO `geo_country` VALUES(227, 'Spratly Islands', 'PG', '--', '--', 0, '--', '', 'Southeast Asia', '', '', '', '', 0, '');
INSERT INTO `geo_country` VALUES(228, 'Sri Lanka', 'CE', 'LK', 'LKA', 144, 'LK', 'Colombo', 'Asia', 'Sri Lankan', 'Sri Lankans', 'Sri Lanka Rupee', 'LKR', 1.94086e+07, '');
INSERT INTO `geo_country` VALUES(229, 'Sudan', 'SU', 'SD', 'SDN', 736, 'SD', 'Khartoum', 'Africa', 'Sudanese', 'Sudanese', 'Sudanese Dinar', 'SDD', 3.60804e+07, '');
INSERT INTO `geo_country` VALUES(230, 'Suriname', 'NS', 'SR', 'SUR', 740, 'SR', 'Paramaribo', 'South America', 'Surinamese', 'Surinamers', 'Suriname Guilder', 'SRG', 433998, '');
INSERT INTO `geo_country` VALUES(231, 'Svalbard', 'SV', 'SJ', 'SJM', 744, 'SJ', 'Longyearbyen', 'Arctic Region', '', '', 'Norwegian Krone', 'NOK', 2332, 'ISO includes Jan Mayen');
INSERT INTO `geo_country` VALUES(232, 'Swaziland', 'WZ', 'SZ', 'SWZ', 748, 'SZ', 'Mbabane', 'Africa', 'Swazi', 'Swazis', 'Lilangeni', 'SZL', 1.10434e+06, '');
INSERT INTO `geo_country` VALUES(233, 'Sweden', 'SW', 'SE', 'SWE', 752, 'SE', 'Stockholm', 'Europe', 'Swedish', 'Swedes', 'Swedish Krona', 'SEK', 8.87505e+06, '');
INSERT INTO `geo_country` VALUES(234, 'Switzerland', 'SZ', 'CH', 'CHE', 756, 'CH', 'Bern', 'Europe', 'Swiss', 'Swiss', 'Swiss Franc', 'CHF', 7.28327e+06, '');
INSERT INTO `geo_country` VALUES(235, 'Syria', 'SY', 'SY', 'SYR', 760, 'SY', 'Damascus', 'Middle East', 'Syrian', 'Syrians', 'Syrian Pound', 'SYP', 1.67288e+07, '');
INSERT INTO `geo_country` VALUES(236, 'Taiwan', 'TW', 'TW', 'TWN', 158, 'TW', 'Taipei', 'Southeast Asia', 'Chinese', 'Chinese', 'New Taiwan Dollar', 'TWD', 2.23705e+07, '');
INSERT INTO `geo_country` VALUES(237, 'Tajikistan', 'TI', 'TJ', 'TJK', 762, 'TJ', 'Dushanbe', 'Commonwealth of Independent States', 'Tajikistani', 'Tajikistanis', 'Somoni', 'TJS', 6.57868e+06, '');
INSERT INTO `geo_country` VALUES(238, 'Tanzania', 'TZ', 'TZ', 'TZA', 834, 'TZ', 'Dar es Salaam', 'Africa', 'Tanzanian', 'Tanzanians', 'Tanzanian Shilling', 'TZS', 3.62321e+07, '');
INSERT INTO `geo_country` VALUES(239, 'Thailand', 'TH', 'TH', 'THA', 764, 'TH', 'Bangkok', 'Southeast Asia', 'Thai', 'Thai', 'Baht', 'THB', 6.17978e+07, '');
INSERT INTO `geo_country` VALUES(240, 'Togo', 'TO', 'TG', 'TGO', 768, 'TG', 'Lome', 'Africa', 'Togolese', 'Togolese', 'CFA Franc BCEAO', 'XOF', 5.15309e+06, '');
INSERT INTO `geo_country` VALUES(241, 'Tokelau', 'TL', 'TK', 'TKL', 772, 'TK', '', 'Oceania', 'Tokelauan', 'Tokelauans', 'New Zealand Dollar', 'NZD', 1445, '');
INSERT INTO `geo_country` VALUES(242, 'Tonga', 'TN', 'TO', 'TON', 776, 'TO', 'Nuku''alofa', 'Oceania', 'Tongan', 'Tongans', 'Pa''anga', 'TOP', 104227, '');
INSERT INTO `geo_country` VALUES(243, 'Trinidad and Tobago', 'TD', 'TT', 'TTO', 780, 'TT', 'Port-of-Spain', 'Central America and the Caribbean', 'Trinidadian and Tobagonian', 'Trinidadians and Tobagonians', 'Trinidad and Tobago Dollar', 'TTD', 1.16968e+06, '');
INSERT INTO `geo_country` VALUES(244, 'Tromelin Island', 'TE', '--', '--', 0, '--', '', 'Africa', '', '', '', '', 0, 'ISO includes with the Miscellaneous (French) Indian Ocean Islands');
INSERT INTO `geo_country` VALUES(245, 'Tunisia', 'TS', 'TN', 'TUN', 788, 'TN', 'Tunis', 'Africa', 'Tunisian', 'Tunisians', 'Tunisian Dinar', 'TND', 9.7051e+06, '');
INSERT INTO `geo_country` VALUES(246, 'Turkey', 'TU', 'TR', 'TUR', 792, 'TR', 'Ankara', 'Middle East', 'Turkish', 'Turks', 'Turkish Lira', 'TRL', 6.6494e+07, '');
INSERT INTO `geo_country` VALUES(247, 'Turkmenistan', 'TX', 'TM', 'TKM', 795, 'TM', 'Ashgabat', 'Commonwealth of Independent States', 'Turkmen', 'Turkmens', 'Manat', 'TMM', 4.60324e+06, '');
INSERT INTO `geo_country` VALUES(248, 'Turks and Caicos Islands', 'TK', 'TC', 'TCA', 796, 'TC', 'Cockburn Town', 'Central America and the Caribbean', '', '', 'US Dollar', 'USD', 18122, '');
INSERT INTO `geo_country` VALUES(249, 'Tuvalu', 'TV', 'TV', 'TUV', 798, 'TV', 'Funafuti', 'Oceania', 'Tuvaluan', 'Tuvaluans', 'Australian Dollar', 'AUD', 10991, '');
INSERT INTO `geo_country` VALUES(250, 'Uganda', 'UG', 'UG', 'UGA', 800, 'UG', 'Kampala', 'Africa', 'Ugandan', 'Ugandans', 'Uganda Shilling', 'UGX', 2.39857e+07, '');
INSERT INTO `geo_country` VALUES(251, 'Ukraine', 'UP', 'UA', 'UKR', 804, 'UA', 'Kiev', 'Commonwealth of Independent States', 'Ukrainian', 'Ukrainians', 'Hryvnia', 'UAH', 4.87605e+07, '');
INSERT INTO `geo_country` VALUES(252, 'United Arab Emirates', 'AE', 'AE', 'ARE', 784, 'AE', 'Abu Dhabi', 'Middle East', 'Emirati', 'Emiratis', 'UAE Dirham', 'AED', 2.40746e+06, '');
INSERT INTO `geo_country` VALUES(253, 'United Kingdom', 'UK', 'GB', 'GBR', 826, 'UK', 'London', 'Europe', 'British', 'Britons', 'Pound Sterling', 'GBP', 5.96478e+07, 'ISO includes Guernsey, Isle of Man, Jersey');
INSERT INTO `geo_country` VALUES(254, 'United States', 'US', 'US', 'USA', 840, 'US', 'Washington', 'North America', 'American', 'Americans', 'US Dollar', 'USD', 2.78059e+08, '');
INSERT INTO `geo_country` VALUES(255, 'United States Minor Outlying Islands', '--', 'UM', 'UMI', 581, 'UM', '', '', '', '', 'US Dollar', 'USD', 0, 'ISO includes Baker Island, Howland Island, Jarvis Island, Johnston Atoll, Kingman Reef, Midway Islan');
INSERT INTO `geo_country` VALUES(256, 'Uruguay', 'UY', 'UY', 'URY', 858, 'UY', 'Montevideo', 'South America', 'Uruguayan', 'Uruguayans', 'Peso Uruguayo', 'UYU', 3.3601e+06, '');
INSERT INTO `geo_country` VALUES(257, 'Uzbekistan', 'UZ', 'UZ', 'UZB', 860, 'UZ', 'Tashkent', 'Commonwealth of Independent States', 'Uzbekistani', 'Uzbekistanis', 'Uzbekistan Sum', 'UZS', 2.51551e+07, '');
INSERT INTO `geo_country` VALUES(258, 'Vanuatu', 'NH', 'VU', 'VUT', 548, 'VU', 'Port-Vila', 'Oceania', 'Ni-Vanuatu', 'Ni-Vanuatu', 'Vatu', 'VUV', 192910, '');
INSERT INTO `geo_country` VALUES(259, 'Venezuela', 'VE', 'VE', 'VEN', 862, 'VE', 'Caracas', 'South America, Central America and the Caribbean', 'Venezuelan', 'Venezuelans', 'Bolivar', 'VEB', 2.39168e+07, '');
INSERT INTO `geo_country` VALUES(260, 'Vietnam', 'VM', 'VN', 'VNM', 704, 'VN', 'Hanoi', 'Southeast Asia', 'Vietnamese', 'Vietnamese', 'Dong', 'VND', 7.9939e+07, '');
INSERT INTO `geo_country` VALUES(261, 'Virgin Islands', 'VQ', 'VI', 'VIR', 850, 'VI', 'Charlotte Amalie', 'Central America and the Caribbean', 'Virgin Islander', 'Virgin Islanders', 'US Dollar', 'USD', 122211, '');
INSERT INTO `geo_country` VALUES(262, 'Virgin Islands (UK)', '--', '--', '--', 0, '--', '', '', '', '', 'US Dollar', 'USD', 0, 'see British Virgin Islands');
INSERT INTO `geo_country` VALUES(263, 'Virgin Islands (US)', '--', '--', '--', 0, '--', '', '', '', '', 'US Dollar', 'USD', 0, 'see Virgin Islands');
INSERT INTO `geo_country` VALUES(264, 'Wake Island', 'WQ', '--', '--', 0, '--', '', 'Oceania', '', '', 'US Dollar', 'USD', 0, 'ISO includes with the US Minor Outlying Islands');
INSERT INTO `geo_country` VALUES(265, 'Wallis and Futuna', 'WF', 'WF', 'WLF', 876, 'WF', 'Mata-Utu', 'Oceania', 'Wallis and Futuna Islander', 'Wallis and Futuna Islanders', 'CFP Franc', 'XPF', 15435, '');
INSERT INTO `geo_country` VALUES(266, 'West Bank', 'WE', '--', '--', 0, '--', '', 'Middle East', '', '', 'New Israeli Shekel', 'ILS', 2.09071e+06, '');
INSERT INTO `geo_country` VALUES(267, 'Western Sahara', 'WI', 'EH', 'ESH', 732, 'EH', '', 'Africa', 'Sahrawian', 'Sahrawis', 'Moroccan Dirham', 'MAD', 250559, '');
INSERT INTO `geo_country` VALUES(268, 'Western Samoa', '--', '--', '--', 0, '--', '', '', '', '', 'Tala', 'WST', 0, 'see Samoa');
INSERT INTO `geo_country` VALUES(269, 'World', '--', '--', '--', 0, '--', '', 'World, Time Zones', '', '', '', '', 6.1574e+09, 'NULL');
INSERT INTO `geo_country` VALUES(270, 'Yemen', 'YM', 'YE', 'YEM', 887, 'YE', 'Sanaa', 'Middle East', 'Yemeni', 'Yemenis', 'Yemeni Rial', 'YER', 1.8078e+07, '');
INSERT INTO `geo_country` VALUES(271, 'Yugoslavia', 'YI', 'YU', 'YUG', 891, 'YU', 'Belgrade', 'Europe', 'Serbian', 'Serbs', 'Yugoslavian Dinar', 'YUM', 1.06773e+07, 'NULL');
INSERT INTO `geo_country` VALUES(272, 'Zaire', '--', '--', '--', 0, '--', '', '', '', '', '', '', 0, 'see Democratic Republic of the Congo');
INSERT INTO `geo_country` VALUES(273, 'Zambia', 'ZA', 'ZM', 'ZWB', 894, 'ZM', 'Lusaka', 'Africa', 'Zambian', 'Zambians', 'Kwacha', 'ZMK', 9.7702e+06, '');
INSERT INTO `geo_country` VALUES(274, 'Zimbabwe', 'ZI', 'ZW', 'ZWE', 716, 'ZW', 'Harare', 'Africa', 'Zimbabwean', 'Zimbabweans', 'Zimbabwe Dollar', 'ZWD', 1.13654e+07, '');
INSERT INTO `geo_country` VALUES(275, 'Palestinian Territory, Occupied', '--', 'PS', 'PSE', 275, 'PS', '', '', '', '', '', '', 0, 'NULL');
&lt;/textarea&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/05/mysql-database-of-geographical.html' title='MySQL database of geographical countries'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=332093239227043618' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/332093239227043618'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/332093239227043618'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7761631126287474862</id><published>2008-05-25T21:51:00.000-07:00</published><updated>2008-05-25T21:53:05.942-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>MySQL database for geographical regions</title><content type='html'>&lt;textarea name="code" class="sql"&gt;
CREATE TABLE `geo_region` (
  `RegionId` int(10) unsigned NOT NULL default '0',
  `CountryId` int(10) unsigned NOT NULL default '0',
  `Region` varchar(100) NOT NULL default '',
  `Code` char(2) NOT NULL default '',
  `ADM1Code` varchar(4) NOT NULL default '',
  PRIMARY KEY  (`RegionId`),
  KEY `CountryId` (`CountryId`),
  KEY `Region` (`Region`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Regions from GeoBytes';

--
-- Dumping data for table `geo_region`
--

INSERT INTO `geo_region` VALUES(1, 14, 'Victoria', 'VI', 'AS07');
INSERT INTO `geo_region` VALUES(2, 14, 'Tasmania', 'TS', 'AS06');
INSERT INTO `geo_region` VALUES(3, 14, 'Queensland', 'QL', 'AS04');
INSERT INTO `geo_region` VALUES(4, 14, 'New South Wales', 'NS', 'AS02');
INSERT INTO `geo_region` VALUES(5, 14, 'South Australia', 'SA', 'AS05');
INSERT INTO `geo_region` VALUES(6, 14, 'Western Australia', 'WA', 'AS08');
INSERT INTO `geo_region` VALUES(7, 14, 'Northern Territory', 'NT', 'AS03');
&lt;/textarea&gt;
Full file: &lt;a href="http://blog.trungson.com/uploads/georegions.txt"&gt;uploads/georegions.txt&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/05/mysql-database-for-geographical-regions.html' title='MySQL database for geographical regions'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7761631126287474862' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7761631126287474862'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7761631126287474862'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-3955103221521134357</id><published>2008-05-25T21:41:00.000-07:00</published><updated>2008-05-25T21:44:23.821-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Geographical city MySQL database</title><content type='html'>&lt;textarea name="code" class="sql"&gt;

CREATE TABLE `geo_city` (
  `CityId` int(10) unsigned NOT NULL default '0',
  `CountryId` int(10) unsigned NOT NULL default '0',
  `RegionId` int(10) unsigned NOT NULL default '0',
  `City` varchar(100) NOT NULL default '',
  `Latitude` float NOT NULL default '0',
  `Longitude` float NOT NULL default '0',
  `TimeZone` varchar(6) NOT NULL default '',
  `DmaId` int(10) unsigned NOT NULL default '0',
  `Code` varchar(5) NOT NULL default '',
  PRIMARY KEY  (`CityId`),
  KEY `CountryId` (`CountryId`),
  KEY `RegionId` (`RegionId`),
  KEY `City` (`City`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Cities from GeoBytes';

--
-- Dumping data for table `geo_city`
--

INSERT INTO `geo_city` VALUES(27239, 254, 124, 'Gray Mountain', 35.8756, -111.412, '-07:00', 753, 'GMOU');
INSERT INTO `geo_city` VALUES(35786, 254, 148, 'Rapelje', 45.9932, -109.288, '-07:00', 756, 'RAPE');
INSERT INTO `geo_city` VALUES(4354, 122, 2329, 'Tamana', 32.917, 130.567, '+09:00', 0, 'TAMA');
INSERT INTO `geo_city` VALUES(13343, 254, 144, 'Croswell', 43.2651, -82.6467, '-05:00', 505, 'CROS');
INSERT INTO `geo_city` VALUES(39829, 254, 146, 'Vardaman', 33.9472, -89.1968, '-06:00', 673, 'VARD');
INSERT INTO `geo_city` VALUES(39933, 254, 144, 'Vicksburg', 42.1149, -85.4789, '-05:00', 563, 'VICK');
INSERT INTO `geo_city` VALUES(21609, 254, 137, 'Bryant', 41.9723, -90.3407, '-06:00', 682, 'BRYA');
INSERT INTO `geo_city` VALUES(29400, 254, 134, 'Kellogg', 47.7187, -116.088, '-08:00', 881, 'KELL');
INSERT INTO `geo_city` VALUES(38484, 254, 152, 'Stockton', 40.4365, -74.9753, '-05:00', 501, 'STOC');
INSERT INTO `geo_city` VALUES(7528, 254, 127, 'Akron', 40.1266, -103.261, '-07:00', 751, 'AKRO');

&lt;/textarea&gt;
Full File: &lt;a href="http://blog.trungson.com/uploads/geocities.txt"&gt;uploads/geocities.txt&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/05/geographical-city-mysql-database.html' title='Geographical city MySQL database'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=3955103221521134357' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/3955103221521134357'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/3955103221521134357'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-1748191308782434134</id><published>2008-05-22T14:53:00.000-07:00</published><updated>2008-05-22T14:57:07.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>MySQL replication problem with 5.0.46-48</title><content type='html'>For CentOS 4.x, if you want MySQL 5.0.x then you would probably use CentOS Plus. And the current MySQL distribution goes with it is often 5.0.46 or 5.0.48, they both have a problem when acting as a slave replication. At every reboot, the replication breaks because the relay log and some other important files is saved into /var/run/mysqld, which get erased every reboot. Not very nice and the bug has been filed with MySQL. To fix, you need to explicitly set the correct file path:
&lt;pre&gt;
# to fix mysql replication problem every reboot
# Source: http://arjen-lentz.livejournal.com/115899.html
relay-log = /var/lib/mysql/relay-bin
relay-log-index = /var/lib/mysql/relay-bin.index
relay-log-info-file = /var/lib/mysql/relay-bin.info
&lt;/pre&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/05/mysql-replication-problem-with-5046-48.html' title='MySQL replication problem with 5.0.46-48'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=1748191308782434134' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1748191308782434134'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1748191308782434134'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-3631841730121231874</id><published>2008-05-14T14:31:00.001-07:00</published><updated>2008-05-14T14:31:58.184-07:00</updated><title type='text'>Updating fields in Microsoft Word</title><content type='html'>To update a cross-reference field, click it and press F9. If you want to update all of the fields in your document, press Ctrl+A to select the entire document before pressing F9.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/05/updating-fields-in-microsoft-word.html' title='Updating fields in Microsoft Word'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=3631841730121231874' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/3631841730121231874'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/3631841730121231874'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-958560703936475769</id><published>2008-04-26T11:36:00.000-07:00</published><updated>2008-04-26T11:56:03.258-07:00</updated><title type='text'>Understand a person from his/her blog comments</title><content type='html'>What if there exists a system that goes out to all blogs, reads the comments, aggregates them into individual profiles. Each comment often has the name and website. A person shares her opinion at this blog, another one at another blog. Soon enough, you will be able to understand her thoughts. It's a behavioral data mining operation. 

&lt;p&gt;Even more powerful, enhancing this with user-provided personal profiles (like from Yahoo, Google, Facebook, or something with individual data). At the end, you get a very powerful and invasive system. This idea would immediately raise a red flag for privacy advocates. Actually, I can't think of any good application beside monitoring "suspicious" people, which already has a vague definition that could be, very well, anyone. Some big organizations, government or commercial, might already be doing this sort of analysis. Google is the prime candidate with sufficient technical capacity to perform such operations.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/04/understand-person-from-hisher-blog.html' title='Understand a person from his/her blog comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=958560703936475769' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/958560703936475769'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/958560703936475769'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-4383646244766700597</id><published>2008-04-23T17:30:00.000-07:00</published><updated>2008-04-26T11:58:57.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Nested JavaScript inclusions and IE</title><content type='html'>Consider the following scenario: file.html contains inline JS code to load remote.js and call a function in remote.js

&lt;textarea name="code" class="js"&gt;
&lt;script text="text/javascript"&gt;

alert('Before loading remote.js');
document.write('&lt;sc'+'ript type="text/javascript" src="remote.js"&gt;&lt;\/script&gt;');

alert('After loading remote.js');
document.write('&lt;sc'+'ript type="text/javascript"&gt;remoteFunction();&lt;\/script&gt;');

&lt;/script&gt;
&lt;/textarea&gt;

And in remote.js
&lt;textarea name="code" class="js"&gt;

function remoteFunction() {
   alert('In remote function');
}

&lt;/textarea&gt;

You would expect the output in this order and Firefox actually honors this order correctly:

&lt;ol&gt;&lt;li&gt;Before loading remote.js&lt;/li&gt;&lt;li&gt;After loading remote.js&lt;/li&gt;&lt;li&gt;In remote function&lt;/li&gt;&lt;/ol&gt;IE on the other hand will give you an error ("Object Expected") and will call the function prematurely. Meaning that it executes before loading remote.js. This is an unexpected behavior. Fortunately, you can add the attribute defer="defer". This will specifically prevent IE from executing and actually produce proper result. Hmm, it's IE! It has its own style!</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/04/nested-javascript-inclusions-and-ie.html' title='Nested JavaScript inclusions and IE'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=4383646244766700597' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/4383646244766700597'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/4383646244766700597'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-2078277771793779685</id><published>2008-03-27T22:17:00.000-07:00</published><updated>2008-04-01T21:07:47.053-07:00</updated><title type='text'>Cache Control - Server vs. Client</title><content type='html'>The server can set Cache-Control as far as it wants but if the client browser (Firefox, IE, etc.) says something else, the client rules. For example: an image with proper server's Cache-control and Expires headers. If the client says "Cache-control: max-age=0" in its request, a conditional GET request will send and HTTP 304 code would return from the server. The expected and best behavior would be no request at all. 

&lt;p&gt;It's not the server's fault, it's done its part correctly. The client is now in control and it seems Firefox and IE on my machine don't like caching that much. So 304's instead of zero request for now.

&lt;p&gt;Update: Firefox actually is pretty smart on this. If you click F5, Refresh or a direct reload, it will send cache-control: max-age=0. It means the server will return 304's. But if you move from one page to the next and the page reuse other cached component, Firefox won't make any request at all, which is the expected behavior. Now I can sleep tight knowing that our pages are faster as fewer conditional GET requests are made.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/03/cache-control-server-vs-client.html' title='Cache Control - Server vs. Client'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=2078277771793779685' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/2078277771793779685'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/2078277771793779685'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-1170932890478222336</id><published>2008-03-16T12:36:00.000-07:00</published><updated>2008-03-16T12:47:30.632-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><title type='text'>Writing a persuasive message with AIDA</title><content type='html'>Writing a persuasive message needs 4 components:
&lt;ol&gt;
&lt;li&gt;Attention = What? You must get audience attention&lt;/li&gt;
&lt;li&gt;Interest = Okay, then what? You continue to build their interest in the subject&lt;/li&gt;
&lt;li&gt;Desire = Why? Why should they care, what is in it for them?&lt;/li&gt;
&lt;li&gt;Action = How? Okay, I'm sold, what's next?&lt;/li&gt;
&lt;/ol&gt;

Characteristics of a good persuasive message:
&lt;ul&gt;
&lt;li&gt;Visual - use story telling, put them into your shoe, your vision&lt;/li&gt;
&lt;li&gt;Personal - talk to them directly, not as a group but as an individual, one-to-one&lt;/li&gt;
&lt;li&gt;Creative - use fresh ideas instead of some cliche, which is boring. And this is the hard part because the longer people get exposed to media, the more likely they've seen it before and learn to ignore/skip/forget about it&lt;/li&gt;
&lt;/ul&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/03/writing-persuasive-message-with-aida.html' title='Writing a persuasive message with AIDA'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=1170932890478222336' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1170932890478222336'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1170932890478222336'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-1122271001227893679</id><published>2008-03-15T12:23:00.000-07:00</published><updated>2008-03-15T12:33:35.679-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>JavaScript - setTimeout vs. setInterval</title><content type='html'>If you need to delay execution (like sleep function), use setTimeout. If you need to repeatedly do something (like refresh stats), use setInterval. 

&lt;ul&gt;
&lt;li&gt;window.setTimeout("show();",2000); // wait 2 seconds then run show()
&lt;li&gt;window.setInterval("show();",3000); // run show() every 3 seconds
&lt;/ul&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/03/javascript-settimeout-vs-setinterval.html' title='JavaScript - setTimeout vs. setInterval'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=1122271001227893679' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1122271001227893679'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/1122271001227893679'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-5011195692186933137</id><published>2008-03-13T09:28:00.000-07:00</published><updated>2008-03-21T12:24:45.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><title type='text'>Google Ad Manager</title><content type='html'>98% of Google's revenue is from advertising so it's not surprising that Google just released a hosted ad server solution after recent acquisition of DoubleClick. They now have 2 solutions, one developed in-house for the small/medium publishers, one from DoubleClick for larger publishers. It'll be just a matter of time before Yahoo or Microsoft either acquire or release their own version of ad servers. Since they're all big companies, they cannot offer an independent ad serving solution. They must tie in with their own ad network(s) or there would be no revenue source. Publishers probably need to share data, lose some control in exchange for the free ad serving benefits. Additionally, it would be also difficult for them to offer certain complex features like real-time stats because it's a resource hog and would raise their costs per user significantly.

&lt;h4&gt;Google Ad Manager's TOS&lt;/h4&gt;
"You agree that Google may aggregate Program Data with data collected from other Program users, and use such aggregated data, provided that Google will only aggregate data in a manner such that no third party could identify which users' data contributed to the aggregated set."

&lt;p&gt;Source: https://www.google.com/admanager/terms/US/Terms.html</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/03/google-ad-manager.html' title='Google Ad Manager'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=5011195692186933137' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/5011195692186933137'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/5011195692186933137'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-447438928515457325</id><published>2008-03-07T09:12:00.000-08:00</published><updated>2008-03-07T09:29:52.413-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><title type='text'>Copycat ad servers</title><content type='html'>We are flattered to know that our ad serving solution, AdSpeed, got several copycats. It seems like requests to clone certain site are quite normal these days and you can find them easily on the job/project boards for freelancers. Examples: Digg, Youtube all have copycats and that's simply not the end of the world. Now even big guys are copying features from each other (Digg vs. Yahoo Buzz, Yahoo Publisher vs. Google AdWords, etc.) and we're no exception, learn the best practices, avoid the bad moves. It's a natural learning process (think "baby"). However, it's definitely distinctive from doing exactly the same, without any adaptation or credit, like plagiarism. 

I just found out this hosted ad server, they copy our processes, even some content with some modifications. For now, it seems they're not forming a serious business and we have not considered taking any legal action yet. Additionally, there is a significant complexity of the front-end and a huge amount of knowledge, experience in the back-end infrastructure and our application platform that is very hard, if not impossible, to replicate.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/03/copycat-ad-servers.html' title='Copycat ad servers'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=447438928515457325' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/447438928515457325'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/447438928515457325'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-3274114968589382213</id><published>2008-02-07T23:08:00.000-08:00</published><updated>2008-02-07T23:19:10.012-08:00</updated><title type='text'>Packet loss - mismatch switch speed</title><content type='html'>&lt;pre&gt;
Link encap:Ethernet  HWaddr 00:16:76:E1:A2:F8
inet addr:xx.xx.xx.51  Bcast:xx.xx.xx.63  Mask:255.255.255.192
inet6 addr: fe80::216:76ff:fee1:a2f8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:11098 errors:2178 dropped:0 overruns:0 frame:1098
TX packets:1493 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:751041 (733.4 KiB)  TX bytes:171501 (167.4 KiB)
Base address:0x2020 Memory:e0200000-e0220000
&lt;/pre&gt;

If you have packet loss and see RX errors/frame, there could be a problem with the interface settings. In this case, a mismatch speed with the switch (100mbps vs. 10mbps). Solution: correct the speed setting so they match. Command: "ethtool -s eth0 autoneg off duplex full speed 10" (immediate effect but will not remember after reboot) or put into config file for permanency:

&lt;pre&gt;
## /etc/sysconfig/network-scripts/ifcfg-eth0 
ETHTOOL_OPTS="autoneg off speed 10 duplex full"
&lt;/pre&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/02/packet-loss-mismatch-switch-speed.html' title='Packet loss - mismatch switch speed'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=3274114968589382213' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/3274114968589382213'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/3274114968589382213'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7266572233778342050</id><published>2008-02-01T13:35:00.001-08:00</published><updated>2008-02-01T13:40:00.616-08:00</updated><title type='text'>Virtual world vs. the real world</title><content type='html'>A ship drops an anchor and boom, Internet down! Everything is in chaos and the trend is  only get worse as we depend more on the Internet for our every day activities. The following diagram shows just how connected and yet vulnerable the whole system is.
&lt;a href="http://image.guardian.co.uk/sys-images/Technology/Pix/pictures/2008/02/01/SeaCableHi.jpg"&gt;Optical Cable Undersea&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/02/virtual-world-vs-real-world.html' title='Virtual world vs. the real world'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7266572233778342050' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7266572233778342050'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7266572233778342050'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-8343886766775961565</id><published>2008-01-29T12:52:00.000-08:00</published><updated>2008-01-29T12:56:38.363-08:00</updated><title type='text'>Social networking</title><content type='html'>Just playing with different social network (Facebook, LinkedIn) even I signed up for them a long time to see what I've been missing. And I see a reason for using them. Keeping connected with friends is definitely not new, by email, phone, meeting, etc. But it's time consuming, especially with your larger network. This is where these networks come in and make simple social interactions simpler and quicker. But ideally, you wish all your friends/contacts were on the same network and one network has all the features.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/01/social-networking.html' title='Social networking'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=8343886766775961565' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/8343886766775961565'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/8343886766775961565'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7479422304958880081</id><published>2008-01-19T10:30:00.000-08:00</published><updated>2008-01-19T10:46:13.595-08:00</updated><title type='text'>Challenges in hiring</title><content type='html'>Managing human resource is difficult, very difficult. I believe anyone runs a business would look at job hunting, resumes, cover letter, and everything about working for someone differently. For starter, determine which channels would be the best to announce your job posting, some costs nothing yet very effective, some are expensive yet yield little. Then, determine if the person is right for the job is also hard, but more fun nevertheless, knowing a new person at both professional and personal level. Next, motivate people and retain them at your company is the hardest part. Everything changes and people change, their needs, situation change and the company has to deal with it. However, a small team of highly motivated employees can do wonders, 10 work as effective as 50. Small and productive is always better than large yet inefficient. Company at any level, small startup or large corporation, has its own set of problems. Isn't business all about solving problems and exploits the opportunity?</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2008/01/challenges-in-hiring.html' title='Challenges in hiring'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7479422304958880081' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7479422304958880081'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7479422304958880081'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-7160937533179253789</id><published>2007-12-23T16:46:00.000-08:00</published><updated>2007-12-23T16:54:21.164-08:00</updated><title type='text'>YouTube video uploader</title><content type='html'>YouTube with that many videos uploaded and yet they have a pretty bad interface for upload (comparing to flickr). The newer Multi-Uploader needs to install into your computer and yet still provide a broken web interface (TRANSIENT_ERROR) and would not upload but keep trying (keep cycling through the process), I tried it in different browsers and the result is still the same. The Single video upload is just so plain and so tedious. Bravo to the Flickr team for doing a much better job at this GUI. I'm still trying to find a Flickr for video.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2007/12/youtube-video-uploader.html' title='YouTube video uploader'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=7160937533179253789' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7160937533179253789'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/7160937533179253789'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-17722847.post-5457482902903917850</id><published>2007-12-22T18:06:00.000-08:00</published><updated>2007-12-22T18:10:24.581-08:00</updated><title type='text'>X10 Toys</title><content type='html'>Some notes when I try to play with a bunch of X10 devices, XX20A (XC22A camera) is B/W, advertised to see 3x more than XCam2 color cameras but subjectively I don't think it's that good, also, it does not see as wide as the XC19A (Wide-Eye, which now turns out to be pretty good). Another note, with Ninja Pan-Tilt, it's pretty cool (see more than a fixed position could show) and its XX14A power adapter can use for both the camera &amp; the base, so you'll have one extra power adapter if you have these toys.</content><link rel='alternate' type='text/html' href='http://blog.trungson.com/2007/12/x10-toys.html' title='X10 Toys'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17722847&amp;postID=5457482902903917850' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://blog.trungson.com/feed.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/5457482902903917850'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17722847/posts/default/5457482902903917850'/><author><name>trungson</name><email>noreply@blogger.com</email></author></entry></feed>