<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coding With Cody &#187; SEO</title>
	<atom:link href="http://www.codingwithcody.com/category/seo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codingwithcody.com</link>
	<description>write compile run repeat</description>
	<lastBuildDate>Tue, 10 Jan 2012 21:52:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Analytics Country Names</title>
		<link>http://www.codingwithcody.com/2011/05/google-analytics-country-names/</link>
		<comments>http://www.codingwithcody.com/2011/05/google-analytics-country-names/#comments</comments>
		<pubDate>Fri, 13 May 2011 06:13:54 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.codingwithcody.com/?p=138</guid>
		<description><![CDATA[Google Analytics Data Export API doesn&#8217;t use country names that align with the ISO-3166-1 standard for country names. This, as I have recently discovered, makes it incredibly difficult to query the API for country details without receiving errors of the error code 500 variety. The answer is this list (published as an HTML table below [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/apis/analytics/docs/gdata/gdataDeveloperGuide.html" title="Google Analytics Data Export API Guide">Google Analytics Data Export API</a> doesn&#8217;t use country names that align with the <a href="http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm" title="ISO-3166-1 standard details">ISO-3166-1 standard</a> for country names. This, as I have recently discovered, makes it incredibly difficult to query the API for country details without receiving errors of the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" title="HTTP error codes">error code 500</a> variety.</p>
<p>The answer is this list (published as an HTML table below as well as a CSV file at the link below). This list still has minor gaps, but is largely complete and ready for implementation. In addition to the name details (along with the <a href="http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm" title="ISO-3166-1 standard details">ISO-3166-1 Alpha-2 codes</a>, safe for one-to-one relationships) are the latitude, longitude and square kilometers for each (where information from my research was readily available as my deadlines on this assignment were not allowing for further research). If you have additional details, please leave them in a comment below and I can add them to the list and update the list for all to enjoy. The CSV is field separated by a comma, uses double-quotes for the text delimiter, CRLF is the row delimiter and the title is the first row.</p>
<p>If you find any part of this collection in error, please let me know so I can make the corrections.</p>
<p><a href="http://www.codingwithcody.com/country.csv" title="Download country code CSV">Download CSV</a></p>
<table style="width: 50%;margin: 0 auto;">
<tr>
<td style="width:50%"><strong>ISO-3166 Alpha-2</strong></td>
<td><strong>Google Name</strong></td>
</tr>
<tr>
<td>AF</td>
<td>Afghanistan</td>
</tr>
<tr>
<td>AX</td>
<td>Åland Islands</td>
</tr>
<tr>
<td>AL</td>
<td>Albania</td>
</tr>
<tr>
<td>DZ</td>
<td>Algeria</td>
</tr>
<tr>
<td>AS</td>
<td>American Samoa</td>
</tr>
<tr>
<td>AD</td>
<td>Andorra</td>
</tr>
<tr>
<td>AO</td>
<td>Angola</td>
</tr>
<tr>
<td>AI</td>
<td>Anguilla</td>
</tr>
<tr>
<td>AQ</td>
<td>Antarctica</td>
</tr>
<tr>
<td>AG</td>
<td>Antigua and Barbuda</td>
</tr>
<tr>
<td>AR</td>
<td>Argentina</td>
</tr>
<tr>
<td>AM</td>
<td>Armenia</td>
</tr>
<tr>
<td>AW</td>
<td>Aruba</td>
</tr>
<tr>
<td>AU</td>
<td>Australia</td>
</tr>
<tr>
<td>AT</td>
<td>Austria</td>
</tr>
<tr>
<td>AZ</td>
<td>Azerbaijan</td>
</tr>
<tr>
<td>BS</td>
<td>Bahamas</td>
</tr>
<tr>
<td>BH</td>
<td>Bahrain</td>
</tr>
<tr>
<td>BD</td>
<td>Bangladesh</td>
</tr>
<tr>
<td>BB</td>
<td>Barbados</td>
</tr>
<tr>
<td>BY</td>
<td>Belarus</td>
</tr>
<tr>
<td>BE</td>
<td>Belgium</td>
</tr>
<tr>
<td>BZ</td>
<td>Belize</td>
</tr>
<tr>
<td>BJ</td>
<td>Benin</td>
</tr>
<tr>
<td>BM</td>
<td>Bermuda</td>
</tr>
<tr>
<td>BT</td>
<td>Bhutan</td>
</tr>
<tr>
<td>BO</td>
<td>Bolivia</td>
</tr>
<tr>
<td>BA</td>
<td>Bosnia and Herzegovina</td>
</tr>
<tr>
<td>BW</td>
<td>Botswana</td>
</tr>
<tr>
<td>BV</td>
<td>Bouvet Island</td>
</tr>
<tr>
<td>BR</td>
<td>Brazil</td>
</tr>
<tr>
<td>IO</td>
<td>British Indian Ocean Territory</td>
</tr>
<tr>
<td>BN</td>
<td>Brunei Darussalam</td>
</tr>
<tr>
<td>BG</td>
<td>Bulgaria</td>
</tr>
<tr>
<td>BF</td>
<td>Burkina Faso</td>
</tr>
<tr>
<td>BI</td>
<td>Burundi</td>
</tr>
<tr>
<td>KH</td>
<td>Cambodia</td>
</tr>
<tr>
<td>CM</td>
<td>Cameroon</td>
</tr>
<tr>
<td>CA</td>
<td>Canada</td>
</tr>
<tr>
<td>CV</td>
<td>Cape Verde</td>
</tr>
<tr>
<td>KY</td>
<td>Cayman Islands</td>
</tr>
<tr>
<td>CF</td>
<td>Central African Republic</td>
</tr>
<tr>
<td>TD</td>
<td>Chad</td>
</tr>
<tr>
<td>CL</td>
<td>Chile</td>
</tr>
<tr>
<td>CN</td>
<td>China</td>
</tr>
<tr>
<td>CX</td>
<td>Christmas Island</td>
</tr>
<tr>
<td>CC</td>
<td>Cocos (Keeling) Islands</td>
</tr>
<tr>
<td>CO</td>
<td>Colombia</td>
</tr>
<tr>
<td>KM</td>
<td>Comoros</td>
</tr>
<tr>
<td>CG</td>
<td>Congo</td>
</tr>
<tr>
<td>CD</td>
<td>Congo [DRC]</td>
</tr>
<tr>
<td>CK</td>
<td>Cook Islands</td>
</tr>
<tr>
<td>CR</td>
<td>Costa Rica</td>
</tr>
<tr>
<td>CI</td>
<td>Côte d&#8217;Ivoire</td>
</tr>
<tr>
<td>HR</td>
<td>Croatia</td>
</tr>
<tr>
<td>CU</td>
<td>Cuba</td>
</tr>
<tr>
<td>CY</td>
<td>Cyprus</td>
</tr>
<tr>
<td>CZ</td>
<td>Czech Republic</td>
</tr>
<tr>
<td>DK</td>
<td>Denmark</td>
</tr>
<tr>
<td>DJ</td>
<td>Djibouti</td>
</tr>
<tr>
<td>DM</td>
<td>Dominica</td>
</tr>
<tr>
<td>DO</td>
<td>Dominican Republic</td>
</tr>
<tr>
<td>EC</td>
<td>Ecuador</td>
</tr>
<tr>
<td>EG</td>
<td>Egypt</td>
</tr>
<tr>
<td>SV</td>
<td>El Salvador</td>
</tr>
<tr>
<td>GQ</td>
<td>Equatorial Guinea</td>
</tr>
<tr>
<td>ER</td>
<td>Eritrea</td>
</tr>
<tr>
<td>EE</td>
<td>Estonia</td>
</tr>
<tr>
<td>ET</td>
<td>Ethiopia</td>
</tr>
<tr>
<td>FK</td>
<td>Falkland Islands [Islas Malvinas]</td>
</tr>
<tr>
<td>FO</td>
<td>Faroe Islands</td>
</tr>
<tr>
<td>FJ</td>
<td>Fiji</td>
</tr>
<tr>
<td>FI</td>
<td>Finland</td>
</tr>
<tr>
<td>FR</td>
<td>France</td>
</tr>
<tr>
<td>GF</td>
<td>French Guiana</td>
</tr>
<tr>
<td>PF</td>
<td>French Polynesia</td>
</tr>
<tr>
<td>TF</td>
<td>French Southern Territories</td>
</tr>
<tr>
<td>GA</td>
<td>Gabon</td>
</tr>
<tr>
<td>GM</td>
<td>Gambia</td>
</tr>
<tr>
<td>GE</td>
<td>Georgia</td>
</tr>
<tr>
<td>DE</td>
<td>Germany</td>
</tr>
<tr>
<td>GH</td>
<td>Ghana</td>
</tr>
<tr>
<td>GI</td>
<td>Gibraltar</td>
</tr>
<tr>
<td>GR</td>
<td>Greece</td>
</tr>
<tr>
<td>GL</td>
<td>Greenland</td>
</tr>
<tr>
<td>GD</td>
<td>Grenada</td>
</tr>
<tr>
<td>GP</td>
<td>Guadeloupe</td>
</tr>
<tr>
<td>GU</td>
<td>Guam</td>
</tr>
<tr>
<td>GT</td>
<td>Guatemala</td>
</tr>
<tr>
<td>GG</td>
<td>Guernsey</td>
</tr>
<tr>
<td>GN</td>
<td>Guinea</td>
</tr>
<tr>
<td>GW</td>
<td>Guinea-Bissau</td>
</tr>
<tr>
<td>GY</td>
<td>Guyana</td>
</tr>
<tr>
<td>HT</td>
<td>Haiti</td>
</tr>
<tr>
<td>HM</td>
<td>Heard Island and McDonald Islands</td>
</tr>
<tr>
<td>VA</td>
<td>Holy See (Vatican City State)</td>
</tr>
<tr>
<td>HN</td>
<td>Honduras</td>
</tr>
<tr>
<td>HK</td>
<td>Hong Kong</td>
</tr>
<tr>
<td>HU</td>
<td>Hungary</td>
</tr>
<tr>
<td>IS</td>
<td>Iceland</td>
</tr>
<tr>
<td>IN</td>
<td>India</td>
</tr>
<tr>
<td>ID</td>
<td>Indonesia</td>
</tr>
<tr>
<td>IR</td>
<td>Iran</td>
</tr>
<tr>
<td>IQ</td>
<td>Iraq</td>
</tr>
<tr>
<td>IE</td>
<td>Ireland</td>
</tr>
<tr>
<td>IM</td>
<td>Isle of Man</td>
</tr>
<tr>
<td>IL</td>
<td>Israel</td>
</tr>
<tr>
<td>IT</td>
<td>Italy</td>
</tr>
<tr>
<td>JM</td>
<td>Jamaica</td>
</tr>
<tr>
<td>JP</td>
<td>Japan</td>
</tr>
<tr>
<td>JE</td>
<td>Jersey</td>
</tr>
<tr>
<td>JO</td>
<td>Jordan</td>
</tr>
<tr>
<td>KZ</td>
<td>Kazakhstan</td>
</tr>
<tr>
<td>KE</td>
<td>Kenya</td>
</tr>
<tr>
<td>KI</td>
<td>Kiribati</td>
</tr>
<tr>
<td>KR</td>
<td>South Korea</td>
</tr>
<tr>
<td>KP</td>
<td>North Korea</td>
</tr>
<tr>
<td>KW</td>
<td>Kuwait</td>
</tr>
<tr>
<td>KG</td>
<td>Kyrgyzstan</td>
</tr>
<tr>
<td>LA</td>
<td>Lao People&#8217;s Democratic Republic</td>
</tr>
<tr>
<td>LV</td>
<td>Latvia</td>
</tr>
<tr>
<td>LB</td>
<td>Lebanon</td>
</tr>
<tr>
<td>LS</td>
<td>Lesotho</td>
</tr>
<tr>
<td>LR</td>
<td>Liberia</td>
</tr>
<tr>
<td>LY</td>
<td>Libya</td>
</tr>
<tr>
<td>LI</td>
<td>Liechtenstein</td>
</tr>
<tr>
<td>LT</td>
<td>Lithuania</td>
</tr>
<tr>
<td>LU</td>
<td>Luxembourg</td>
</tr>
<tr>
<td>MO</td>
<td>Macao</td>
</tr>
<tr>
<td>MK</td>
<td>Macedonia [FYROM]</td>
</tr>
<tr>
<td>MG</td>
<td>Madagascar</td>
</tr>
<tr>
<td>MW</td>
<td>Malawi</td>
</tr>
<tr>
<td>MY</td>
<td>Malaysia</td>
</tr>
<tr>
<td>MV</td>
<td>Maldives</td>
</tr>
<tr>
<td>ML</td>
<td>Mali</td>
</tr>
<tr>
<td>MT</td>
<td>Malta</td>
</tr>
<tr>
<td>MH</td>
<td>Marshall Islands</td>
</tr>
<tr>
<td>MQ</td>
<td>Martinique</td>
</tr>
<tr>
<td>MR</td>
<td>Mauritania</td>
</tr>
<tr>
<td>MU</td>
<td>Mauritius</td>
</tr>
<tr>
<td>YT</td>
<td>Mayotte</td>
</tr>
<tr>
<td>MX</td>
<td>Mexico</td>
</tr>
<tr>
<td>FM</td>
<td>Micronesia</td>
</tr>
<tr>
<td>MD</td>
<td>Moldova</td>
</tr>
<tr>
<td>MC</td>
<td>Monaco</td>
</tr>
<tr>
<td>MN</td>
<td>Mongolia</td>
</tr>
<tr>
<td>ME</td>
<td>Serbia and Montenegro</td>
</tr>
<tr>
<td>MS</td>
<td>Montserrat</td>
</tr>
<tr>
<td>MA</td>
<td>Morocco</td>
</tr>
<tr>
<td>MZ</td>
<td>Mozambique</td>
</tr>
<tr>
<td>MM</td>
<td>Myanmar [Burma]</td>
</tr>
<tr>
<td>NA</td>
<td>Namibia</td>
</tr>
<tr>
<td>NR</td>
<td>Nauru</td>
</tr>
<tr>
<td>NP</td>
<td>Nepal</td>
</tr>
<tr>
<td>NL</td>
<td>Netherlands</td>
</tr>
<tr>
<td>AN</td>
<td>Netherlands Antilles</td>
</tr>
<tr>
<td>NC</td>
<td>New Caledonia</td>
</tr>
<tr>
<td>NZ</td>
<td>New Zealand</td>
</tr>
<tr>
<td>NI</td>
<td>Nicaragua</td>
</tr>
<tr>
<td>NE</td>
<td>Niger</td>
</tr>
<tr>
<td>NG</td>
<td>Nigeria</td>
</tr>
<tr>
<td>NU</td>
<td>Niue</td>
</tr>
<tr>
<td>NF</td>
<td>Norfolk Island</td>
</tr>
<tr>
<td>MP</td>
<td>Northern Mariana Islands</td>
</tr>
<tr>
<td>NO</td>
<td>Norway</td>
</tr>
<tr>
<td>OM</td>
<td>Oman</td>
</tr>
<tr>
<td>PK</td>
<td>Pakistan</td>
</tr>
<tr>
<td>PW</td>
<td>Palau</td>
</tr>
<tr>
<td>PS</td>
<td>Palestinian Territories</td>
</tr>
<tr>
<td>PA</td>
<td>Panama</td>
</tr>
<tr>
<td>PG</td>
<td>Papua New Guinea</td>
</tr>
<tr>
<td>PY</td>
<td>Paraguay</td>
</tr>
<tr>
<td>PE</td>
<td>Peru</td>
</tr>
<tr>
<td>PH</td>
<td>Philippines</td>
</tr>
<tr>
<td>PN</td>
<td>Pitcairn</td>
</tr>
<tr>
<td>PL</td>
<td>Poland</td>
</tr>
<tr>
<td>PT</td>
<td>Portugal</td>
</tr>
<tr>
<td>PR</td>
<td>Puerto Rico</td>
</tr>
<tr>
<td>QA</td>
<td>Qatar</td>
</tr>
<tr>
<td>RE</td>
<td>Réunion</td>
</tr>
<tr>
<td>RO</td>
<td>Romania</td>
</tr>
<tr>
<td>RU</td>
<td>Russia</td>
</tr>
<tr>
<td>RW</td>
<td>Rwanda</td>
</tr>
<tr>
<td>BL</td>
<td>Saint Barthélemy</td>
</tr>
<tr>
<td>SH</td>
<td>Saint Helena</td>
</tr>
<tr>
<td>KN</td>
<td>Saint Kitts and Nevis</td>
</tr>
<tr>
<td>LC</td>
<td>Saint Lucia</td>
</tr>
<tr>
<td>MF</td>
<td>Saint Martin</td>
</tr>
<tr>
<td>PM</td>
<td>Saint Pierre and Miquelon</td>
</tr>
<tr>
<td>VC</td>
<td>Saint Vincent and the Grenadines</td>
</tr>
<tr>
<td>WS</td>
<td>Samoa</td>
</tr>
<tr>
<td>SM</td>
<td>San Marino</td>
</tr>
<tr>
<td>ST</td>
<td>São Tomé and Principe</td>
</tr>
<tr>
<td>SA</td>
<td>Saudi Arabia</td>
</tr>
<tr>
<td>SN</td>
<td>Senegal</td>
</tr>
<tr>
<td>RS</td>
<td>Serbia</td>
</tr>
<tr>
<td>SC</td>
<td>Seychelles</td>
</tr>
<tr>
<td>SL</td>
<td>Sierra Leone</td>
</tr>
<tr>
<td>SG</td>
<td>Singapore</td>
</tr>
<tr>
<td>SK</td>
<td>Slovakia</td>
</tr>
<tr>
<td>SI</td>
<td>Slovenia</td>
</tr>
<tr>
<td>SB</td>
<td>Solomon Islands</td>
</tr>
<tr>
<td>SO</td>
<td>Somalia</td>
</tr>
<tr>
<td>ZA</td>
<td>South Africa</td>
</tr>
<tr>
<td>GS</td>
<td>South Georgia and the South Sandwich Islands</td>
</tr>
<tr>
<td>ES</td>
<td>Spain</td>
</tr>
<tr>
<td>LK</td>
<td>Sri Lanka</td>
</tr>
<tr>
<td>SD</td>
<td>Sudan</td>
</tr>
<tr>
<td>SR</td>
<td>Suriname</td>
</tr>
<tr>
<td>SJ</td>
<td>Svalbard and Jan Mayen</td>
</tr>
<tr>
<td>SZ</td>
<td>Swaziland</td>
</tr>
<tr>
<td>SE</td>
<td>Sweden</td>
</tr>
<tr>
<td>CH</td>
<td>Switzerland</td>
</tr>
<tr>
<td>SY</td>
<td>Syria</td>
</tr>
<tr>
<td>TW</td>
<td>Taiwan</td>
</tr>
<tr>
<td>TJ</td>
<td>Tajikistan</td>
</tr>
<tr>
<td>TZ</td>
<td>Tanzania</td>
</tr>
<tr>
<td>TH</td>
<td>Thailand</td>
</tr>
<tr>
<td>TL</td>
<td>Timor-Leste</td>
</tr>
<tr>
<td>TG</td>
<td>Togo</td>
</tr>
<tr>
<td>TK</td>
<td>Tokelau</td>
</tr>
<tr>
<td>TO</td>
<td>Tonga</td>
</tr>
<tr>
<td>TT</td>
<td>Trinidad and Tobago</td>
</tr>
<tr>
<td>TN</td>
<td>Tunisia</td>
</tr>
<tr>
<td>TR</td>
<td>Turkey</td>
</tr>
<tr>
<td>TM</td>
<td>Turkmenistan</td>
</tr>
<tr>
<td>TC</td>
<td>Turks and Caicos Islands</td>
</tr>
<tr>
<td>TV</td>
<td>Tuvalu</td>
</tr>
<tr>
<td>UG</td>
<td>Uganda</td>
</tr>
<tr>
<td>UA</td>
<td>Ukraine</td>
</tr>
<tr>
<td>AE</td>
<td>United Arab Emirates</td>
</tr>
<tr>
<td>GB</td>
<td>United Kingdom</td>
</tr>
<tr>
<td>US</td>
<td>United States</td>
</tr>
<tr>
<td>UM</td>
<td>United States Minor Outlying Islands</td>
</tr>
<tr>
<td>UY</td>
<td>Uruguay</td>
</tr>
<tr>
<td>UZ</td>
<td>Uzbekistan</td>
</tr>
<tr>
<td>VU</td>
<td>Vanuatu</td>
</tr>
<tr>
<td>VE</td>
<td>Venezuela</td>
</tr>
<tr>
<td>VN</td>
<td>Vietnam</td>
</tr>
<tr>
<td>VG</td>
<td>British Virgin Islands</td>
</tr>
<tr>
<td>VI</td>
<td>U.S. Virgin Islands</td>
</tr>
<tr>
<td>WF</td>
<td>Wallis and Futuna</td>
</tr>
<tr>
<td>EH</td>
<td>Western Sahara</td>
</tr>
<tr>
<td>YE</td>
<td>Yemen</td>
</tr>
<tr>
<td>ZM</td>
<td>Zambia</td>
</tr>
<tr>
<td>ZW</td>
<td>Zimbabwe</td>
</tr>
</table>
<p><strong>Update &#8211; Dec 2011</strong> Many thanks to our friend Lars for combing over the list and poviding updated values for country names. If there are any further updates or corrections, please make note in the comments below and I&#8217;ll get this list updated with those values.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2011/05/google-analytics-country-names/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>SERPSight Testers Needed!</title>
		<link>http://www.codingwithcody.com/2010/06/serpsight-testers-needed/</link>
		<comments>http://www.codingwithcody.com/2010/06/serpsight-testers-needed/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 09:42:48 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://codingwithcody.com/?p=58</guid>
		<description><![CDATA[Visit SERPSight.com for the pre-beta tests. Free automated search engine result page tracking credits for the testers (this is open to anyone). Bonus credits for anyone who can find and report an exploit in the system.]]></description>
			<content:encoded><![CDATA[<p>Visit <a href="http://serpsight.com">SERPSight.com</a> for the pre-beta tests. Free <a href="http://serpsight.com">automated search engine result page tracking</a> credits for the testers (this is open to anyone). Bonus credits for anyone who can find and report an exploit in the system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2010/06/serpsight-testers-needed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generate Random IP with Python</title>
		<link>http://www.codingwithcody.com/2010/05/generate-random-ip-with-python/</link>
		<comments>http://www.codingwithcody.com/2010/05/generate-random-ip-with-python/#comments</comments>
		<pubDate>Mon, 17 May 2010 18:09:13 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://codingwithcody.com/?p=55</guid>
		<description><![CDATA[In need of an IP address on-the-fly that appears to be valid? Try this: View Code PYTHONfrom random import randrange &#160; def generateIP&#40;&#41;: blockOne = randrange&#40;0, 255, 1&#41; blockTwo = randrange&#40;0, 255, 1&#41; blockThree = randrange&#40;0, 255, 1&#41; blockFour = randrange&#40;0, 255, 1&#41; print 'Random IP: ' + str&#40;blockOne&#41; + '.' + str&#40;blockTwo&#41; + '.' [...]]]></description>
			<content:encoded><![CDATA[<p>In need of an IP address on-the-fly that appears to be valid? Try this:</p>
<blockquote>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p55code3'); return false;">View Code</a> PYTHON</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p553"><td class="code" id="p55code3"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">random</span> <span style="color: #ff7700;font-weight:bold;">import</span> randrange
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> generateIP<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    blockOne = randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    blockTwo = randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    blockThree = randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    blockFour = randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Random IP: '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockOne<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockTwo<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockThree<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockFour<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> blockOne == <span style="color: #ff4500;">10</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.__generateRandomIP__<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> blockOne == <span style="color: #ff4500;">172</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.__generateRandomIP__<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> blockOne == <span style="color: #ff4500;">192</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.__generateRandomIP__<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockOne<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockTwo<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockThree<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>blockFour<span style="color: black;">&#41;</span></pre></td></tr></table></div>

</blockquote>
<p>We&#8217;re skipping 10.x.x.x, 172.x.x.x and 192.x.x.x due to the fact that these are reserved address. <a href="http://www.faqs.org/rfcs/rfc1918.html" rel="nofollow">RFC 1918</a></p>
<p><strong>Version 2:</strong></p>
<p>An elegant solution to serve the purpose of generating a random IP provided by <a href="http://spareclockcycles.org/">Ben</a> (explanation of changes listed in the comments below):</p>
<blockquote>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p55code4'); return false;">View Code</a> PYTHON</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p554"><td class="code" id="p55code4"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">random</span> <span style="color: #ff7700;font-weight:bold;">import</span> randrange
<span style="color: #ff7700;font-weight:bold;">if</span> __name__==<span style="color: #483d8b;">&quot;__main__&quot;</span>:
    not_valid = <span style="color: black;">&#91;</span><span style="color: #ff4500;">10</span>,<span style="color: #ff4500;">127</span>,<span style="color: #ff4500;">169</span>,<span style="color: #ff4500;">172</span>,<span style="color: #ff4500;">192</span><span style="color: black;">&#93;</span>
&nbsp;
    first = randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">256</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">while</span> first <span style="color: #ff7700;font-weight:bold;">in</span> not_valid:
    first = randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">256</span><span style="color: black;">&#41;</span>
&nbsp;
    ip = <span style="color: #483d8b;">&quot;.&quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>first<span style="color: black;">&#41;</span>,<span style="color: #008000;">str</span><span style="color: black;">&#40;</span>randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">256</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>,
    <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">256</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>,<span style="color: #008000;">str</span><span style="color: black;">&#40;</span>randrange<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">256</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> ip</pre></td></tr></table></div>

</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2010/05/generate-random-ip-with-python/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>KEI and Competition Weight</title>
		<link>http://www.codingwithcody.com/2010/03/kei-and-competition-weight/</link>
		<comments>http://www.codingwithcody.com/2010/03/kei-and-competition-weight/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 06:54:27 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://codingwithcody.com/?p=48</guid>
		<description><![CDATA[Normally, simple KEI is created using the following formula where P is popularity and C is competition: KEI = P2/C This will get you in trouble. Not all competitors are the same and looking at just the number of indexed sites using an allintitle operator does not take this into account. For example, a football [...]]]></description>
			<content:encoded><![CDATA[<p>Normally, simple KEI is created using the following formula where P is popularity and C is competition:</p>
<blockquote><p>KEI = P2/C</p></blockquote>
<p>This will get you in trouble. Not all competitors are the same and looking at just the number of indexed sites using an allintitle operator does not take this into account. For example, a football game against 10 people would seem favorable to a game against 50 people, right? Would you change your mind if you discovered those 50 people were all amputees and the 10 were Olympic athletes?</p>
<p>How can we know the “physical conditioning” of our search competitors without extensive evaluation of each site? I suggest using PR distribution. Take the first 20 results and lookup the PR/MR of each URL (this is easier if you are or know a programmer) and get the average PR/MR value. This should be used in the existing formula in the following fashion where PR is PR/MR:</p>
<blockquote><p>KEI = P2/(C*PR)</p></blockquote>
<p>This may skew things a bit, so feel free to tinker with the weight till it meets your liking as in the following example:</p>
<blockquote><p>KEI = P2/(C(PR*.25))</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2010/03/kei-and-competition-weight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ethical SEO</title>
		<link>http://www.codingwithcody.com/2010/03/ethical-seo/</link>
		<comments>http://www.codingwithcody.com/2010/03/ethical-seo/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 07:34:31 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://codingwithcody.com/?p=45</guid>
		<description><![CDATA[Google and the other big players in search all hate SEO. This is completely understandable (coming from the Director of Search Engine Optimization at a large web development firm). SEO is riddled with bad advice, grey areas and misinformation to the engines. The problem is not the profession, it’s the approach. Let’s step into the [...]]]></description>
			<content:encoded><![CDATA[<p>Google and the other big players in search all hate SEO. This is completely understandable (coming from the Director of Search Engine Optimization at a large web development firm). SEO is riddled with bad advice, grey areas and misinformation to the engines. The problem is not the profession, it’s the approach.</p>
<p>Let’s step into the shoes of Google. Their mission is to organize the information for the entire globe into a single query line. They want to ensure what you type into that box results in what you want to understand. That’s one hell of a goal and I’d like to see it met with quickness. The problem lies in people trying to find an easy out, be it due to pressure from a marketing team or the lack of traffic they expected off their existing “tactics” or any number of other reasons.</p>
<p>We are not here to fight Google. We are here to help. First off, don’t take on a client that isn’t actually an authority in their market. If they are and should be an authority in the engines, then you have something to work with.</p>
<p>The biggest beef I have right now is social media. I talk to who I talk (or “friend”) to for a reason. I know a lot of you talk to 2k people but only do business with 10 and this is not ethical as an internet marketing practice. Additionally, I believe the goal of Google will shut you down. There is no truth in your methodology. If you believe relevance relies in any way on the number of people you connect with, Google has a big surprise waiting for you,</p>
<p>Bottom line is this: The best of the engines will show relevance and a trend when it actually is a trend. Don’t underhand them or try to make it what it isn’t. Play by the rules. By helping the master (Google) understand our world, we help ourselves.</p>
<p>Or…keep being cheap. You won&#8217;t last (just like the link farmers of &#8217;97, who boasted big stats 13 years ago)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2010/03/ethical-seo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordZe API Python Script</title>
		<link>http://www.codingwithcody.com/2009/07/wordze-api-python-script/</link>
		<comments>http://www.codingwithcody.com/2009/07/wordze-api-python-script/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 00:04:49 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://codingwithcody.com/?p=34</guid>
		<description><![CDATA[Can be run from the command line or in another application. Built for Python 2.4 with pyCURL View Code PYTHONimport sys, pycurl, re, time, string, urllib from datetime import date import xml.dom.minidom &#160; class WordZe: &#160; def __init__&#40;self, key='ADD YOUR KEY HERE'&#41;: self.apiKey = key self.caretakerObj = WordZeCaretaker&#40;&#41; self.userAgent = 'Mozilla/5.0 (Windows; U; Windows NT [...]]]></description>
			<content:encoded><![CDATA[<p>Can be run from the command line or in another application. Built for Python 2.4 with pyCURL</p>
<blockquote>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p34code6'); return false;">View Code</a> PYTHON</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p346"><td class="code" id="p34code6"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>, pycurl, <span style="color: #dc143c;">re</span>, <span style="color: #dc143c;">time</span>, <span style="color: #dc143c;">string</span>, <span style="color: #dc143c;">urllib</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">datetime</span> <span style="color: #ff7700;font-weight:bold;">import</span> date
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">xml</span>.<span style="color: black;">dom</span>.<span style="color: black;">minidom</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> WordZe:
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, key=<span style="color: #483d8b;">'ADD YOUR KEY HERE'</span><span style="color: black;">&#41;</span>:
		<span style="color: #008000;">self</span>.<span style="color: black;">apiKey</span> = key
		<span style="color: #008000;">self</span>.<span style="color: black;">caretakerObj</span> = WordZeCaretaker<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		<span style="color: #008000;">self</span>.<span style="color: black;">userAgent</span> = <span style="color: #483d8b;">'Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)'</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> singleKeywordLookup<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, keyList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>:
		<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>keyList<span style="color: black;">&#41;</span> == <span style="color: #ff4500;">0</span>:
			<span style="color: #ff7700;font-weight:bold;">raise</span> Error<span style="color: black;">&#40;</span><span style="color: #483d8b;">'You need to pass a list to the singleKeywordLookup to perform a request.'</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">else</span>:
			<span style="color: #808080; font-style: italic;"># TODO: DB CHECK FOR VALUE PULLED WITHIN LAST 30 DAYS</span>
			keyString = <span style="color: #dc143c;">string</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>keyList, <span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span>
&nbsp;
			requestObj = pycurl.<span style="color: black;">Curl</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
			requestObj.<span style="color: black;">setopt</span><span style="color: black;">&#40;</span>pycurl.<span style="color: black;">USERAGENT</span>, <span style="color: #008000;">self</span>.<span style="color: black;">userAgent</span><span style="color: black;">&#41;</span>
			requestObj.<span style="color: black;">setopt</span><span style="color: black;">&#40;</span>pycurl.<span style="color: black;">FOLLOWLOCATION</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
			requestObj.<span style="color: black;">setopt</span><span style="color: black;">&#40;</span>pycurl.<span style="color: black;">WRITEFUNCTION</span>, <span style="color: #008000;">self</span>.<span style="color: black;">caretakerObj</span>.<span style="color: black;">remotecallback</span><span style="color: black;">&#41;</span>
			requestObj.<span style="color: black;">setopt</span><span style="color: black;">&#40;</span>pycurl.<span style="color: black;">HTTPGET</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
&nbsp;
			keyString = <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>keyString<span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">' '</span>,<span style="color: #483d8b;">'+'</span><span style="color: black;">&#41;</span>
			requestObj.<span style="color: black;">setopt</span><span style="color: black;">&#40;</span>pycurl.<span style="color: black;">URL</span>, <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'http://api.wordze.com/KeywordSingle?ApiKey='</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">apiKey</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'&amp;amp;Query='</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>keyString<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
			requestObj.<span style="color: black;">perform</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
			requestObj.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
			<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">caretakerObj</span>.<span style="color: black;">getDict</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> WordZeCaretaker:
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
		<span style="color: #008000;">self</span>.<span style="color: black;">contents</span> = <span style="color: #483d8b;">''</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> getDict<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
		docMod = <span style="color: #dc143c;">xml</span>.<span style="color: black;">dom</span>.<span style="color: black;">minidom</span>.<span style="color: black;">parseString</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">contents</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">handleKeywords</span><span style="color: black;">&#40;</span>docMod<span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> handleKeywords<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, docMod<span style="color: black;">&#41;</span>:
		returnDict = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
		keywords = docMod.<span style="color: black;">getElementsByTagName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Keyword&quot;</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #dc143c;">keyword</span> <span style="color: #ff7700;font-weight:bold;">in</span> keywords:
			keyDict = <span style="color: black;">&#123;</span>
			    <span style="color: #483d8b;">'keyword'</span>:<span style="color: #008000;">self</span>.<span style="color: black;">getText</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">keyword</span>.<span style="color: black;">childNodes</span><span style="color: black;">&#41;</span>,
			    <span style="color: #483d8b;">'count'</span>:<span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">keyword</span>.<span style="color: black;">attributes</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'Count'</span><span style="color: black;">&#93;</span>.<span style="color: black;">value</span><span style="color: black;">&#41;</span>,
			    <span style="color: #483d8b;">'estimated'</span>:<span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">keyword</span>.<span style="color: black;">attributes</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'Estimated'</span><span style="color: black;">&#93;</span>.<span style="color: black;">value</span><span style="color: black;">&#41;</span>
			    <span style="color: black;">&#125;</span>
			returnDict.<span style="color: black;">append</span><span style="color: black;">&#40;</span>keyDict<span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># TODO: DB INSERT</span>
&nbsp;
		<span style="color: #ff7700;font-weight:bold;">return</span> returnDict
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> getText<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,nodelist<span style="color: black;">&#41;</span>:
		rc = <span style="color: #483d8b;">&quot;&quot;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> node <span style="color: #ff7700;font-weight:bold;">in</span> nodelist:
			<span style="color: #ff7700;font-weight:bold;">if</span> node.<span style="color: black;">nodeType</span> == node.<span style="color: black;">TEXT_NODE</span>:
				rc = rc + node.<span style="color: black;">data</span>
		<span style="color: #ff7700;font-weight:bold;">return</span> rc
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> remotecallback<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, buf<span style="color: black;">&#41;</span>:
		<span style="color: #008000;">self</span>.<span style="color: black;">contents</span> = <span style="color: #008000;">self</span>.<span style="color: black;">contents</span> + buf
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
	lookupObj = WordZe<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	keywords = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Comma sep, no spaces list of terms: '</span><span style="color: black;">&#41;</span>
	termList = <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>keywords<span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span>
	cleanList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> term <span style="color: #ff7700;font-weight:bold;">in</span> termList:
		cleanList.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>term<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	lookupObj.<span style="color: black;">singleKeywordLookup</span><span style="color: black;">&#40;</span>cleanList<span style="color: black;">&#41;</span></pre></td></tr></table></div>

</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2009/07/wordze-api-python-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Saturation</title>
		<link>http://www.codingwithcody.com/2008/11/google-saturation/</link>
		<comments>http://www.codingwithcody.com/2008/11/google-saturation/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 02:24:48 +0000</pubDate>
		<dc:creator>Cody Snider</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[description tag]]></category>
		<category><![CDATA[google saturation]]></category>
		<category><![CDATA[meta tags]]></category>
		<category><![CDATA[sitemaps]]></category>
		<category><![CDATA[title tag]]></category>

		<guid isPermaLink="false">http://codingwithcody.com/?p=5</guid>
		<description><![CDATA[What did we (re)learn from all this? Don't spam OR duplicate titles or descriptions in your site and add a sitemap with pre-populated searches for your in-house searching.]]></description>
			<content:encoded><![CDATA[<p>I ran an experiment with a few key areas of SEO at work early this month with impressive results in page saturation on Google (something I monitor daily so I can keep an eye on what is and is not working for our indexing).</p>
<p>To put a bit of background to the experiments, let me start by saying I took the SEO position at my company only a couple months ago and the last guy was a bit &#8216;textbook&#8217; with his approach (very basic strategies, but we had pages indexed). The first thing I noticed when I started to dig into the status of the clients was the horrible abuse of meta and title tags. Keyword games, as we all know, are a thing of the past and the focus is really on title and description when you look at the meta block.</p>
<p>As for the title tags: All duplicates with EVERY keyword in them (spam, anyone). So, the first wave of changes was to add system-wide options for title tag prepending in the CMS and dynamic, relevant titles in the controller-driven pages (this is a work-in-progress).</p>
<p>On to the descriptions: Comma-separated chunks of keyterms (as the system fallback) and seemingly irrelevant strings the rest of the time. Ouch. These, too, have the option for an override in the CMS and many of the controllers are now building these dynamically (another work-in-progress).</p>
<p>The final layer for this particular experiment was the XML sitemap. I know this is a gimicky tool most of the time, but when your site has a large amount of useful content hidden inside the in-site search and few links to pre-populated searches, a sitemap becomes necessary. So, beyond the standard navigation items, the searches were added and the sitemaps submitted.</p>
<p>We went, network-wide, from about 77k indexed pages to 124k indexed pages&#8230;. In one week. I know this may drop back down a bit as the spiders get a longer look at things, but it&#8217;s a nice boost for such small changes. And, of course, none of these pages have even hit my radar for position monitoring (though, in some clients, we&#8217;re starting to see a small boost).</p>
<p>What did we (re)learn from all this? Don&#8217;t spam OR duplicate titles or descriptions in your site and add a sitemap with pre-populated searches for your in-house searching.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codingwithcody.com/2008/11/google-saturation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

