<?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>juust ~ php oddities &#187; seo tips and tricks</title>
	<atom:link href="http://www.juust.org/index.php/category/seo-tips-and-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juust.org</link>
	<description>Link theory and search engine optimization</description>
	<lastBuildDate>Thu, 19 Jan 2012 09:39:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>how to get bing api search results in MsOffice VBA</title>
		<link>http://www.juust.org/index.php/how-to-get-bing-api-search-results-in-msoffice-vba/2011/12/</link>
		<comments>http://www.juust.org/index.php/how-to-get-bing-api-search-results-in-msoffice-vba/2011/12/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 23:27:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bing]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[serp]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[xhr]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1946</guid>
		<description><![CDATA[For the loyal VBA fans a quick snippet to grab search results from Bing in Access or Excel. There are few articles on the web about that, and that is a shame. So lets add some content on it to &#8230; <a href="http://www.juust.org/index.php/how-to-get-bing-api-search-results-in-msoffice-vba/2011/12/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the loyal VBA fans a quick snippet to grab search results from Bing in Access or Excel. There are few articles on the web about that, and that is a shame. So lets add some content on it to the web : first in MsAccess VBA and then in Excel, with a <a href="http://www.juust.org/wp-content/uploads/file/sample_workbook_vba_bing_api.xlsm">sample workbook</a> added.</p>
<p>Working with the BING API requires an Application Id you can get <a href="http://www.bing.com/toolbox/bingdeveloper/">at the Bing website</a>.</p>
<h2>Accessing the Bing Api in MsAccess VBA</h2>
<p>In the the VBA Ide, through the menu <em>T</em>ools <em>R</em>eferences I add a reference to the XML object library that contains the XMLHTTPRequest object, enabling me to make HTTP requests from VBA in the MsAccess database.</p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/add-xmlhttprequest-to-vba.png" rel="shadowbox[post-1946];player=img;"><img src="http://www.juust.org/wp-content/uploads/2011/12/add-xmlhttprequest-to-vba.png" alt="" title="add xmlhttprequest to vba" width="779" height="278" class="alignnone size-full wp-image-1947" /></a></p>
<p>The simple part is the http request string : </p>
<div class="geshi no vb">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Dim</span> MyKeyword <span class="kw1">As</span> <span class="kw1">String</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MyKeyword = <span class="st0">&quot;seo&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Dim</span> requestString <span class="kw1">As</span> <span class="kw1">String</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; requestString = <span class="st0">&quot;http://api.bing.net/xml.aspx?&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Dim</span> AppId <span class="kw1">As</span> <span class="kw1">String</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; AppId = <span class="st0">&quot;(get one at the bing website)&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">&#39; Common request fields (required)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; requestString = requestString &amp; _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;AppId=&quot;</span> &amp; AppId &amp; <span class="st0">&quot;&amp;Query=&quot;</span> &amp; MyKeyword &amp; <span class="st0">&quot;&amp;Sources=Web&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">&#39; Common request fields (optional)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; requestString = requestString &amp; _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&amp;Version=2.0&quot;</span> _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp; <span class="st0">&quot;&amp;Market=en-us&quot;</span> _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp; <span class="st0">&quot;&amp;Adult=Moderate&quot;</span> _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp; <span class="st0">&quot;&amp;Options=&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">&#39; Web-specific request fields (optional)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; requestString = requestString &amp; _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&amp;Web.Count=10&quot;</span> _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp; <span class="st0">&quot;&amp;Web.Offset=0&quot;</span> _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp; <span class="st0">&quot;&amp;Web.Options=DisableHostCollapsing+DisableQueryAlterations&quot;</span></div>
</li>
</ol>
</div>
<p>Then comes the working part, sending the actual request and receiving the XML response (<strong>objSvrHTTP.responseText</strong>) containing the search data. I use a DomDocument object and XPath to get at the XML data.</p>
<p>First sending the request</p>
<div class="geshi no vb">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; objSvrHTTP.<span class="kw1">Open</span> <span class="st0">&quot;GET&quot;</span>, requestString, <span class="kw1">False</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; objSvrHTTP.<span class="me1">send</span> requestString</div>
</li>
</ol>
</div>
<p>then creating a domdocument and receiving the response in it</p>
<div class="geshi no vb">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">&#39;Create the DomDocument Object</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Dim</span> oDoc <span class="kw1">As</span> MSXML2.<span class="me1">DOMDocument</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Set</span> oDoc = <span class="kw1">CreateObject</span><span class="br0">&#40;</span><span class="st0">&quot;MSXML2.DOMDocument&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; oDoc.<span class="me1">async</span> = <span class="kw1">False</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; oDoc.<span class="me1">validateOnParse</span> = <span class="kw1">False</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">&#39;Load the response in the DomDocument Object</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Dim</span> fSuccess <span class="kw1">As</span> <span class="kw1">Boolean</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; fSuccess = oDoc.<span class="me1">loadXML</span><span class="br0">&#40;</span>objSvrHTTP.<span class="me1">responseText</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">If</span> <span class="kw1">Not</span> fSuccess <span class="kw1">Then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">MsgBox</span> <span class="st0">&quot;failed&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Exit</span> <span class="kw1">Sub</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">If</span></div>
</li>
</ol>
</div>
<p>The response uses two namespaces and the data we actually want is in the &#8220;web&#8221; namespace, so before we start selecting nodes in the xml-tree we first indicate what namespace we want to access :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; oDoc<span class="sy0">.</span>SetProperty <span class="st0">&quot;SelectionNamespaces&quot;</span><span class="sy0">,</span> <span class="st0">&quot;xmlns:web=&#39;http://schemas.microsoft.com/LiveSearch/2008/04/XML/web&#39;&quot;</span></div>
</li>
</ol>
</div>
<p>The total search result pages is a top level node in the namespace :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Set xmlnode <span class="sy0">=</span> oDoc<span class="sy0">.</span>selectSingleNode<span class="br0">&#40;</span><span class="st0">&quot;//web:Total&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Debug<span class="sy0">.</span><span class="kw3">Print</span> xmlnode<span class="sy0">.</span>Text</div>
</li>
</ol>
</div>
<p>&#8230;but the good stuff is in the &#8220;WebResult&#8221; nodes in the xml tree, I can use an XPath reference <strong>//web:Webresult</strong> to access that node-collection and with a simple for-next iterate through the collection, selecting the single nodes containing the actual data.</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Set oChildren <span class="sy0">=</span> oDoc<span class="sy0">.</span>selectNodes<span class="br0">&#40;</span><span class="st0">&quot;//web:WebResult&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">For</span> <span class="kw3">Each</span> oResult In oChildren</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Debug<span class="sy0">.</span><span class="kw3">Print</span> oResult<span class="sy0">.</span>selectSingleNode<span class="br0">&#40;</span><span class="st0">&quot;./web:Title&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>Text</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Debug<span class="sy0">.</span><span class="kw3">Print</span> oResult<span class="sy0">.</span>selectSingleNode<span class="br0">&#40;</span><span class="st0">&quot;./web:Description&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>Text</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Debug<span class="sy0">.</span><span class="kw3">Print</span> oResult<span class="sy0">.</span>selectSingleNode<span class="br0">&#40;</span><span class="st0">&quot;./web:Url&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>Text</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Debug<span class="sy0">.</span><span class="kw3">Print</span> oResult<span class="sy0">.</span>selectSingleNode<span class="br0">&#40;</span><span class="st0">&quot;./web:DisplayUrl&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>Text</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Debug<span class="sy0">.</span><span class="kw3">Print</span> vbCrLf</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">Next</span></div>
</li>
</ol>
</div>
<p>I output to the Immediate window aka Debug (under <em>V</em>iew, <em>I</em>mmediate Window or Ctrl+G)</p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/bing-api-in-vba-visual-basic-for-applications-msaccess-and-excel.png" rel="shadowbox[post-1946];player=img;"><img src="http://www.juust.org/wp-content/uploads/2011/12/bing-api-in-vba-visual-basic-for-applications-msaccess-and-excel.png" alt="" title="bing api in vba visual basic for applications msaccess and excel" width="765" height="248" class="alignnone size-full wp-image-1951" /></a></p>
<p>What can we do with it ? Let&#8217;s make a table for date, keyword, url, title, description, position</p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/access-nake-table.png" rel="shadowbox[post-1946];player=img;"><img src="http://www.juust.org/wp-content/uploads/2011/12/access-nake-table.png" alt="" title="access nake table" width="866" height="166" class="alignnone size-full wp-image-1954" /></a></p>
<p>and add some code to store the results we retrieve</p>
<div class="geshi no vb">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Dim</span> table1 <span class="kw1">As</span> DAO.<span class="kw1">Recordset</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Set</span> table1 = CurrentDb.<span class="me1">OpenRecordset</span><span class="br0">&#40;</span><span class="st0">&quot;Table1&quot;</span>, dbOpenTable<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">&#39;counter for position &nbsp; &nbsp;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; i = <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Set</span> oChildren = oDoc.<span class="me1">selectNodes</span><span class="br0">&#40;</span><span class="st0">&quot;//web:WebResult&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">For</span> Each oStruct In oChildren</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;i = i + <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">With</span> table1</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">AddNew</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">&#39;data from bing</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !TITLE = oStruct.<span class="me1">selectSingleNode</span><span class="br0">&#40;</span><span class="st0">&quot;./web:Title&quot;</span><span class="br0">&#41;</span>.<span class="me1">Text</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !Description = oStruct.<span class="me1">selectSingleNode</span><span class="br0">&#40;</span><span class="st0">&quot;./web:Description&quot;</span><span class="br0">&#41;</span>.<span class="me1">Text</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !url = oStruct.<span class="me1">selectSingleNode</span><span class="br0">&#40;</span><span class="st0">&quot;./web:Url&quot;</span><span class="br0">&#41;</span>.<span class="me1">Text</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">&#39;and some additional data</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !MYDATE = <span class="kw1">Now</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !POSITION = i</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !KEYWORD = MyKeyword</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">&#39;store the record</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">Update</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">With</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Next</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; table1.<span class="kw1">Close</span></div>
</li>
</ol>
</div>
<p>There now that scratches the seo itch :<br />
<a href="http://www.juust.org/wp-content/uploads/2011/12/bing-api-seo-data-in-msaccess.png" rel="shadowbox[post-1946];player=img;"><img src="http://www.juust.org/wp-content/uploads/2011/12/bing-api-seo-data-in-msaccess.png" alt="" title="bing api seo data in msaccess" width="1071" height="224" class="alignnone size-full wp-image-1957" /></a></p>
<p>MsAccess stuff is a bit hard to put on the web as sample, so I&#8217;ll make a quick one in Excel and put it up for download.</p>
<h2>Accessing the Bing Api in Excel VBA</h2>
<p> <a href="http://www.juust.org/wp-content/uploads/file/sample_workbook_vba_bing_api.xlsm">there you go</a> : on sheet 1 you can fill in your AppID and keyword, click the butt(on&#8230;</p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/bing-api-in-excel-vba.png" rel="shadowbox[post-1946];player=img;"><img src="http://www.juust.org/wp-content/uploads/2011/12/bing-api-in-excel-vba.png" alt="" title="bing api in excel vba" width="623" height="236" class="alignnone size-full wp-image-1958" /></a></p>
<p>&#8230;and on sheet 2 you get the top 10 search results</p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/bing-api-in-excel-vba-sheet2.png" rel="shadowbox[post-1946];player=img;"><img src="http://www.juust.org/wp-content/uploads/2011/12/bing-api-in-excel-vba-sheet2.png" alt="" title="bing api in excel vba sheet2" width="1247" height="304" class="alignnone size-full wp-image-1959" /></a></p>
<p>It uses the cells B1 and B2 as named ranges for MyKeyword and AppID, and has the code in the enclosed module. It also contains one of my AppId&#8217;s so no querying nasty shit, please.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/how-to-get-bing-api-search-results-in-msoffice-vba/2011/12/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>google suggest scraper (php &amp; simplexml)</title>
		<link>http://www.juust.org/index.php/google-suggest-scraper-php-simplexml/2011/12/</link>
		<comments>http://www.juust.org/index.php/google-suggest-scraper-php-simplexml/2011/12/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 00:08:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scrape]]></category>
		<category><![CDATA[simplexml]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1834</guid>
		<description><![CDATA[Today&#8217;s goal is a basic php Google Suggest scraper because I wanted traffic data and keywords for free. Before we start : google scraping is bad ! Good People use the Google Adwords API : 25 cents for 1000 units, &#8230; <a href="http://www.juust.org/index.php/google-suggest-scraper-php-simplexml/2011/12/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s goal is a basic php Google Suggest scraper because I wanted traffic data and keywords for free.</p>
<p>Before we start :</p>
<h2 style="text-align: center;">google scraping is <strong>bad</strong> !</h2>
<p>Good People use the <a title="google adwords api" href="http://code.google.com/apis/adwords/">Google Adwords API</a> : 25 cents for 1000 units, 15++ units for keyword suggestion so they pay 4 or 5 dollar for 1000 keyword suggestions (if they can find a good programmer which also costs a few dollars). Or they opt for <a title="search engine marketing data" href="http://www.semrush.com" rel="nofollow">SemRush</a> (also my preference), <a href="http://www.keywordspy.com" rel="nofollow">KeywordSpy</a>, <a href="http://www.spyfu.com" rel="nofollow">Spyfu</a>, and other services like 7Search PPC programs to get keyword and traffic data and data on their competitors but these also charge about 80 dollars per month for a limited account up to a few hundred per month for seo companies. Good people pay plenty.</p>
<p>We tiny grey webmice of marketing however just want a few estimates, at low or better no cost : like this :</p>
<table width="276" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="206" />
<col width="70" /> </colgroup>
<tbody>
<tr>
<td width="206" height="20">data</td>
<td align="right" width="70">num queries</td>
</tr>
<tr>
<td width="206" height="20">google suggest</td>
<td align="right" width="70">57800000</td>
</tr>
<tr>
<td height="20">google suggestion box</td>
<td align="right">5390000</td>
</tr>
<tr>
<td height="20">google suggest api</td>
<td align="right">5030000</td>
</tr>
<tr>
<td height="20">google suggestion tool</td>
<td align="right">3670000</td>
</tr>
<tr>
<td height="20">google suggest a site</td>
<td align="right">72700000</td>
</tr>
<tr>
<td height="20">google suggested users</td>
<td align="right">57000000</td>
</tr>
<tr>
<td height="20">google suggestions funny</td>
<td align="right">37400000</td>
</tr>
<tr>
<td height="20"><strong>google suggest scraper</strong></td>
<td align="right">62800</td>
</tr>
<tr>
<td height="20">google suggestions not working</td>
<td align="right">87100000</td>
</tr>
<tr>
<td height="20">google suggested user list</td>
<td align="right">254000000</td>
</tr>
</tbody>
</table>
<p>Suggestion autocomplete is AJAX, it outputs XML :</p>
<pre>&lt; ?xml version="1.0"? &gt;
   &lt;toplevel&gt;
     &lt;CompleteSuggestion&gt;
       &lt;suggestion data="senior quotes"/&gt;
       &lt;num_queries int="30000000"/&gt;
     &lt;/CompleteSuggestion&gt;
     &lt;CompleteSuggestion&gt;
       &lt;suggestion data="senior skip day lyrics"/&gt;
       &lt;num_queries int="441000"/&gt;
     &lt;/CompleteSuggestion&gt;
   &lt;/toplevel&gt;</pre>
<p>Using SimpleXML, the PHP routine is as simple as querying <strong><em>g00gle.c0m/complete/search?</em></strong>, grabbing the autocomplete xml, and extracting the attribute data :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#39;QUERY_STRING&#39;</span><span class="br0">&#93;</span><span class="sy0">==</span><span class="st0">&#39;&#39;</span><span class="br0">&#41;</span> <span class="kw3">die</span><span class="br0">&#40;</span><span class="st0">&#39;enter a query like http://host/filename.php?query&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$contentstring</span> <span class="sy0">=</span> <span class="sy0">@</span><span class="kw3">file_get_contents</span><span class="br0">&#40;</span><span class="st0">&quot;http://g00gle.c0m/complete/search?output=toolbar&amp;amp;q=&quot;</span><span class="sy0">.</span><span class="kw3">urlencode</span><span class="br0">&#40;</span><span class="re1">$kw</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re1">$content</span> <span class="sy0">=</span> simplexml_load_string<span class="br0">&#40;</span><span class="re1">$contentstring</span> <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re1">$content</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>CompleteSuggestion <span class="kw1">as</span> <span class="re1">$c</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$term</span> <span class="sy0">=</span> <span class="br0">&#40;</span>string<span class="br0">&#41;</span> <span class="re1">$c</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>suggestion<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>attributes<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>data<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//note : traffic data is sometimes missing &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$traffic</span> <span class="sy0">=</span> <span class="br0">&#40;</span>string<span class="br0">&#41;</span> <span class="re1">$c</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>num_queries<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>attributes<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>int<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="re1">$term</span><span class="sy0">.</span> <span class="st0">&quot; &quot;</span><span class="sy0">.</span><span class="re1">$traffic</span> <span class="sy0">.</span> <span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;</span> <span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>I made a quick php script that outputs the terms as a list of new queries so you can walk through the suggestions :</p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/google-suggest-scraper-tool.jpg" rel="shadowbox[post-1834];player=img;"><img class="alignnone size-medium wp-image-1835" title="google suggest scraper tool" src="http://www.juust.org/wp-content/uploads/2011/12/google-suggest-scraper-tool-300x289.jpg" alt="" width="529" height="400" /></a></p>
<p><a href="http://www.juust.org/wp-content/uploads/2011/12/google-suggest-scraper-tool-II1.jpg" rel="shadowbox[post-1834];player=img;"><img class="alignnone size-medium wp-image-1837" title="google suggest scraper tool II" src="http://www.juust.org/wp-content/uploads/2011/12/google-suggest-scraper-tool-II1-300x286.jpg" alt="" width="462" height="440" /></a></p>
<p>The source is as text file up for <a title="google suggest scraper tool code" href="http://www.juust.org/suggestit.txt">download overhere</a> (rename it to suggestit.php and it should run on any server with php5.* and simplexml).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/google-suggest-scraper-php-simplexml/2011/12/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>mortgage and crisis and 30% more granny giftshops</title>
		<link>http://www.juust.org/index.php/mortgage-and-crisis-and-30-more-granny-giftshops/2011/12/</link>
		<comments>http://www.juust.org/index.php/mortgage-and-crisis-and-30-more-granny-giftshops/2011/12/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 14:05:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[juust]]></category>
		<category><![CDATA[sem]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[granny gift shop marketing]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1724</guid>
		<description><![CDATA[Some random thoughts on economy : one cause of the crisis remains the recent refinancing of mortgage from annuitary to interest-only. We used to have annuitary mortgages, where you pay off the main sum as you go. Moneychimp has a &#8230; <a href="http://www.juust.org/index.php/mortgage-and-crisis-and-30-more-granny-giftshops/2011/12/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some random thoughts on economy : one cause of the crisis remains the recent refinancing of mortgage from annuitary to interest-only. We used to have annuitary mortgages, where you pay off the main sum as you go. Moneychimp has a simple <a href="http://www.moneychimp.com/calculator/annuity_calculator.htm">annuity calculator</a> online :</p>
<table>
<tbody>
<tr>
<td>main sum</td>
<td>int.</td>
<td>yearly</td>
<td>monthly</td>
<td> yrs</td>
</tr>
<tr>
<td>200.000</td>
<td>4%</td>
<td>14.500</td>
<td>1200</td>
<td>20</td>
</tr>
<tr>
<td>200.000</td>
<td>2%</td>
<td>11.500</td>
<td>0900</td>
<td> 20</td>
</tr>
</tbody>
</table>
<p>At first you pay 98% interest and 2% debt, at the end you pay 2% and 98% debt. In the netherlands we have a specific regulation that allows for deduction of the interest payment from taxes, that benefits startup families and can lower the tax pressure from roughly 35% to 30%. After 20 years on average people make more money and can do without the deduct.</p>
<p>In the bubble one brand-new idea was the interest-only mortgage, where you pay the entire sum at the end when you sell the house.</p>
<p>There are arguments for it, and arguments to never go there.</p>
<table>
<tbody>
<tr>
<td>main sum</td>
<td>int.</td>
<td>yearly</td>
<td>monthly</td>
<td> yrs</td>
</tr>
<tr>
<td>200.000</td>
<td>4%</td>
<td>8.000</td>
<td>0700</td>
<td> -</td>
</tr>
<tr>
<td>200.000</td>
<td>2%</td>
<td>4.000</td>
<td>0350</td>
<td> -</td>
</tr>
</tbody>
</table>
<p>That would seem amazing, average joe can refinance his 200K house and pays only 70% compared to an annuity mortgage.</p>
<p>Problem remains that in a free market the price is what the market pays for it, and if 50% of the market is the average joe population the market has a 1000/mo budget, through competition the market price of houses goes up :</p>
<table>
<tbody>
<tr>
<td>main sum</td>
<td>int.</td>
<td>yearly</td>
<td>monthly</td>
<td></td>
</tr>
<tr>
<td>300.000</td>
<td>4%</td>
<td>12.000</td>
<td>1000</td>
<td></td>
</tr>
<tr>
<td>600.000</td>
<td>2%</td>
<td>12.000</td>
<td>1000</td>
<td></td>
</tr>
</tbody>
</table>
<p>Without the payment on the main debt, the prices on the housing market becomemore volatile. If interest goes up the prices drop, part of the mortgages can become a risk to the houseowner and bank, who can even lose their triple-A and that drives the interest up even more.</p>
<p>If Joe bought the house at 2% 600K and the price drops to 450K with 3% interest, Joe has a 150K net debt that is not covered in the sale of the house. 20 Joe&#8217;s is a million dollar problem. 200.000 Joes is a 10 billion dollar problem. We have roughly 3 million Joe families so we would have a 150 billion dollar problem.</p>
<p>A strong argument not to go there.</p>
<p>The second problem is the release of funds in the refinance round, the old mortgages were annuitary and some were almost completely paid. Selling a 200K 4% for 300K 4% frees 300K and that will largely be spent in the overal economy. It could amount to 300 billion for the netherlands, 20.000 per capita that is not structural growth.</p>
<p>The basic spend on housing, gas water electricity, municipal and state taxes, health insurance didn&#8217;t change, and much of the extra funds is spent on luxury. The baby-boomers were 45-55 at the time so they benefitted most from the refinance round, and could suddenly buy a Bavaria yacht for daddy, a timeshare pensionada home in Spain or Portugal, adventures on the stock exchange, music, computers, extra dinners.</p>
<p>With as result the yachtbuilders booming, expanding, entire new factories for ships, and now the entire demand is gone and half the companies go bankrupt. Construction of pensionado village in Spain and Portugal is over, sadly it was mainly the pension funds that invested in these projects (another reason not to go there).</p>
<p>Building capacity to satisfy extra demand in a bubble is a waste, there is no structural long term demand. John Maynard Keynes hinted at that, it is wise for a community to save money when things go well to support spend when things go less well, and choose a long term stable balanced growth.</p>
<p>In keynesian thought the state is the complement or maybe superego  of the population and in these phases increases taxes and cuts budget and spend on education, culture, health care to dampen excessive growth, once the economic growth slows down the state  lowers taxes and spends more. The state spend is complement to the populations spend and together they spend in a stable growing pattern. That allows for stable turnover for companies and stable employment, and would prevent building up bubble luxury overcapacity.</p>
<p>That remains a critique on my part, part of the crisis is caused by the egotism of the <a href="http://en.wikipedia.org/wiki/Baby_boom">baby-boom</a>. The baby-boom demographic segment is 30% bigger than normal, we have 6% &#8220;extra&#8221; population in that segment mainly in countries involved in WW2. When voting, they can outvote other demographic segments related to life phase issues.</p>
<p>The baby boom itself causes an independant extra demand in lifecycle related products of 30% in the west, and also a 30% drop in demand for these products as they move towards the retirement home. They could simply be used to catering to their own needs, for them the growth in business would always seem related to their lifecycle products, as if society actually shapes itself to satisfy their needs.</p>
<p>All in all, that makes the main search engine marketing tip for the next ten years Granny Gift shops on the web, lots of photos of happy little toddlers that make Granny happy, with $20,- gifts for Granny&#8217;s own grandchildren. Home delivery so Granny does not have to go out on the streets.</p>
<p>There is a 30% extra demand in the segment throughout the west (unless the pension funds go belly up). In 2015 there is 50% more demand for &#8220;happy 70th birthday&#8221; cards in the Netherlands.</p>
<p>Just some random thoughts.</p>
<p>I am going to get some coffee, I have a very stable coffee demand pattern that I *must* stafisy, my demand is very stable and long term a-cyclic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/mortgage-and-crisis-and-30-more-granny-giftshops/2011/12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Panda Latent Semantic Indexing Test</title>
		<link>http://www.juust.org/index.php/google-panda-lsi-test/2011/12/</link>
		<comments>http://www.juust.org/index.php/google-panda-lsi-test/2011/12/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 03:16:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[latent semantic indexing]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1674</guid>
		<description><![CDATA[Panda&#8217;s&#8230; Latent Semantic Indexing Queries, or concept searches, against a set of documents that have undergone LSI will return results that are conceptually similar in meaning to the search criteria even if the results don’t share a specific word or &#8230; <a href="http://www.juust.org/index.php/google-panda-lsi-test/2011/12/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.juust.org/wp-content/uploads/2011/12/cat.gif" rel="shadowbox[post-1674];player=img;"><img class="alignnone size-full wp-image-1675" title="cat" src="http://www.juust.org/wp-content/uploads/2011/12/cat.gif" alt="" width="500" height="281" /></a></p>
<p style="text-align: center;"><em>Panda&#8217;s&#8230;</em></p>
<blockquote>
<h3>Latent Semantic Indexing</h3>
<p>Queries, or concept searches, against a set of documents that have undergone <a title="LSI definition wikipedia" href="http://en.wikipedia.org/wiki/Latent_semantic_indexing">LSI</a> will return results that are conceptually similar in meaning to the search criteria even if the results don’t share a specific word or words with the search criteria.</p></blockquote>
<p>&nbsp;</p>
<h3>LSI Test</h3>
<p><span style="color: #3366ff;">O my friend, Panda is something that has to be surpassed. In <span style="color: #0000ff;">{speculation|guess|supposition|surmise|surmisal|possibility|hypothesis}</span> and keeping silence shall the friend be a master: you should not wish to see everything.</span> <small>(Nietzsche, Also Sprach Zarathustra)</small></p>
<p>&nbsp;</p>
<table>
<tbody>
<tr>
<td><span style="color: #000000;">Id</span></td>
<td><span style="color: #000000;">the_term</span></td>
<td><span style="color: #000000;">the_type</span></td>
<td><span style="color: #000000;">the_value</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156875</span></td>
<td><span style="color: #999999;">c<strong><em>0</em></strong>njecture</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">speculation</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156876</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">hypothesis (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156877</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">possibility</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156878</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">theory (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156879</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">guess</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156880</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">supposition</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156881</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">surmise</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156882</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">surmisal</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156883</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">speculation</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156884</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">hypothesis</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156885</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">opinion (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156886</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">view (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156887</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">reasoning (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156888</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">logical thinking (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156889</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(noun)</span></td>
<td><span style="color: #000000;">abstract thought (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156890</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">speculate</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156891</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">theorize</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156892</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">theorise</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156893</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">hypothesize</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156894</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">hypothesise</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156895</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">hypothecate</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156896</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">suppose</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156897</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">expect (generic term)</span></td>
</tr>
<tr>
<td><span style="color: #000000;">156898</span></td>
<td><span style="color: #000000;">&#8212;&#8212;&#8212;-</span></td>
<td><span style="color: #000000;">(verb)</span></td>
<td><span style="color: #000000;">anticipate (generic term)</span></td>
</tr>
</tbody>
</table>
<p style="text-align: right;"> <small>(source : semanthesaurus)</small></p>
<p>&nbsp;</p>
<p>Let&#8217;s see if the Panda gets it.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/google-panda-lsi-test/2011/12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oauth twitter posting</title>
		<link>http://www.juust.org/index.php/oauth-twitter-posting/2010/11/</link>
		<comments>http://www.juust.org/index.php/oauth-twitter-posting/2010/11/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 16:50:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[sem]]></category>
		<category><![CDATA[seo tips and tricks]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1430</guid>
		<description><![CDATA[I noticed Twitter do not support Basic HTTP Auth but oAuth, so I had a look around at the available libraries and EPITwitter by Jaisen Mathai works fine as replacement for cUrl http auth. I noticed when testing it with &#8230; <a href="http://www.juust.org/index.php/oauth-twitter-posting/2010/11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I noticed Twitter do not support Basic HTTP Auth but oAuth, so I had a look around at the available libraries and <a href="https://github.com/jmathai/twitter-async">EPITwitter</a>  by <a href="http://www.jaisenmathai.com/">Jaisen Mathai</a> works fine as replacement for cUrl http auth. </p>
<p>I noticed when testing it with Twitter the whole key set is stored on the <a href="http://dev.twitter.com/">dev.twitter subdomain</a> and not in the application directory where you register an application initially. When my first tests failed I think my keys were marked invalid, one working solution is revoking the application access and renewing the keys, then test again and it works. Once it works, it works flawless.</p>
<p>After registering an app at Twitter and getting the keys, it is a nobrainer.</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$status</span> <span class="sy0">=</span> <span class="st0">&#39;some bogus text&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span>WP_PLUGIN_DIR <span class="sy0">.</span> <span class="st0">&#39;/myplugin/epitwitter/EpiCurl.php&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span>WP_PLUGIN_DIR <span class="sy0">.</span> <span class="st0">&#39;/myplugin/epitwitter/EpiOAuth.php&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span>WP_PLUGIN_DIR <span class="sy0">.</span> <span class="st0">&#39;/myplugin/epitwitter/EpiTwitter.php&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$consumer_key</span> <span class="sy0">=</span> <span class="st0">&#39;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$consumer_secret</span> <span class="sy0">=</span> <span class="st0">&#39;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$oauth_token</span> <span class="sy0">=</span><span class="st0">&#39;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$oauth_token_secret</span> <span class="sy0">=</span> <span class="st0">&#39;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$twitterObj</span> <span class="sy0">=</span> <span class="kw2">new</span> EpiTwitter<span class="br0">&#40;</span><span class="re1">$consumer_key</span><span class="sy0">,</span> <span class="re1">$consumer_secret</span><span class="sy0">,</span> <span class="re1">$oauth_token</span><span class="sy0">,</span> <span class="re1">$oauth_token_secret</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$twitterObjUnAuth</span> <span class="sy0">=</span> <span class="kw2">new</span> EpiTwitter<span class="br0">&#40;</span><span class="re1">$consumer_key</span><span class="sy0">,</span> <span class="re1">$consumer_secret</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$twitterObjUnAuth</span><span class="sy0">-&gt;</span><span class="me1">getAuthenticateUrl</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//$creds = $twitterObj-&gt;get(&#39;/account/verify_credentials.json&#39;);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$status</span> <span class="sy0">=</span> <span class="re1">$twitterObj</span><span class="sy0">-&gt;</span><span class="me1">post</span><span class="br0">&#40;</span><span class="st0">&#39;/statuses/update.json&#39;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;status&#39;</span> <span class="sy0">=&gt;</span> <span class="re1">$status</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/oauth-twitter-posting/2010/11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pagerank sculpting session</title>
		<link>http://www.juust.org/index.php/pagerank-sculpting-session/2010/07/</link>
		<comments>http://www.juust.org/index.php/pagerank-sculpting-session/2010/07/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 14:24:00 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[seo tips and tricks]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1307</guid>
		<description><![CDATA[In the series &#8216;how to manipulate google&#8216; : pagerank sculpting 101. If I build a site about &#8220;LCD television&#8221; and want to promote three specific brands/offers, I want Google to index the product/offer-pages as most important in the site, and &#8230; <a href="http://www.juust.org/index.php/pagerank-sculpting-session/2010/07/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the series &#8216;<em>how to manipulate google</em>&#8216; : pagerank sculpting 101.</p>
<p>If I build a site about &#8220;LCD television&#8221; and want to promote three  specific brands/offers, I want Google to index the product/offer-pages  as most important in the site, and not the index page.</p>
<p>How do I achieve that ?</p>
<p>Some basic theory : I have two rings of pages, one with four pages (B), and one with three (A), linked over one page (AB),</p>
<p>.</p>
<p><img class="alignnone size-medium wp-image-1310" title="pagerank sculpting 000" src="http://www.juust.org/wp-content/uploads/2010/07/pagerank-sculpting-000-300x232.jpg" alt="pagerank sculpting 000" width="300" height="232" /></p>
<p>&#8230;after running that through a pagerank simulation, I get these results :</p>
<table border="0">
<tbody>
<tr>
<td>item</td>
<td>importance</td>
</tr>
<tr>
<td>b</td>
<td>0.97</td>
</tr>
<tr>
<td>ab</td>
<td>1.60</td>
</tr>
<tr>
<td>a</td>
<td>0.73</td>
</tr>
</tbody>
</table>
<p>&#8230;the linking page (AB) sheds its juice to two rings, 3/5 vs 2/5, and by doing so drains the smaller ring. Being the only page that gets links and juice from all other pages, the ab-page itself scores the highest &#8216;importance&#8217; in the website.</p>
<p>Conclusion : adding some subpages in a smaller ring to a page makes it relatively more important in the website.</p>
<p><img class="alignnone size-medium wp-image-1313" title="pagerank sculpting 001" src="http://www.juust.org/wp-content/uploads/2010/07/pagerank-sculpting-001-300x223.jpg" alt="pagerank sculpting 001" width="300" height="223" /></p>
<table border="0">
<tbody>
<tr>
<td>item</td>
<td>importance</td>
</tr>
<tr>
<td>home, prod1, prod3</td>
<td>0.97</td>
</tr>
<tr>
<td>prod2</td>
<td>1.60</td>
</tr>
<tr>
<td>sub</td>
<td>0.73</td>
</tr>
</tbody>
</table>
<p>Let&#8217;s add some more subrings :</p>
<p><img class="alignnone size-medium wp-image-1314" title="pagerank sculpting 002" src="http://www.juust.org/wp-content/uploads/2010/07/pagerank-sculpting-002-276x300.jpg" alt="pagerank sculpting 002" width="276" height="300" /></p>
<table border="0">
<tbody>
<tr>
<td>item</td>
<td>importance</td>
</tr>
<tr>
<td>I, Prod1</td>
<td>0.96</td>
</tr>
<tr>
<td>Prod2, 3</td>
<td>1.58</td>
</tr>
<tr>
<td>sub</td>
<td>0.72</td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-medium wp-image-1311" title="pagerank sculpting 003" src="http://www.juust.org/wp-content/uploads/2010/07/pagerank-sculpting-003-300x264.jpg" alt="pagerank sculpting 003" width="300" height="264" /></p>
<table border="0">
<tbody>
<tr>
<td>item</td>
<td>importance</td>
</tr>
<tr>
<td>home</td>
<td>0.94</td>
</tr>
<tr>
<td>Prod 1,2,3</td>
<td>1.56</td>
<td></td>
</tr>
<tr>
<td>sub</td>
<td>0.72</td>
<td></td>
</tr>
</tbody>
</table>
<p>The importance of the product pages seems to drop, but the ratio prod-n/home improves, so it works out better.</p>
<p><strong>Home-links</strong></p>
<p>By not linking back to the index page from the subpages, the product pages end up with a higher rank within the site.</p>
<p>If I do link from each subpage (S) to the index page (home) (what wordpress themes generally do)</p>
<p><img class="alignnone size-medium wp-image-1312" title="pagerank sculpting 004" src="http://www.juust.org/wp-content/uploads/2010/07/pagerank-sculpting-004-300x268.jpg" alt="pagerank sculpting 004" width="300" height="268" /></p>
<p>&#8230;I get these results&#8230;</p>
<table border="0">
<tbody>
<tr>
<td>item</td>
<td>importance</td>
</tr>
<tr>
<td>home</td>
<td>1.91</td>
</tr>
<tr>
<td>Prod 1,2,3</td>
<td>1.54</td>
</tr>
<tr>
<td>Sub</td>
<td>0.57</td>
</tr>
</tbody>
</table>
<p>&#8230;the home page is indicated as most important in the site, which isn&#8217;t what I wanted, so I omit the home-link on subpages.</p>
<p>End of the sculpting session.</p>
<p>(note: this is, of course, all theoretic)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/pagerank-sculpting-session/2010/07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>interesting : seo panel</title>
		<link>http://www.juust.org/index.php/interesting-seo-panel/2010/07/</link>
		<comments>http://www.juust.org/index.php/interesting-seo-panel/2010/07/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 01:19:24 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[optimization]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1278</guid>
		<description><![CDATA[That seems fun, an open source seo toolkit. It is a five second install multi-user package offering simple stats, but more interesting, a semi automated website directory submitter in a clean interface, and could be a valuable service offer if &#8230; <a href="http://www.juust.org/index.php/interesting-seo-panel/2010/07/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>That seems fun, an <a href="http://www.seopanel.in/download/">open source seo toolkit</a>. It is a five second install multi-user package offering simple stats, but more interesting, a semi automated website directory submitter in a clean interface, and could be a valuable service offer if you run an seo community site. </p>
<p>It is PHP MVC and, what sparked my interest, it has a plugin interface.<br />
I love that, It could be going somewhere over the next few years. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/interesting-seo-panel/2010/07/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

