<?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>Pear Analytics &#187; Development</title>
	<atom:link href="http://www.pearanalytics.com/blog/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pearanalytics.com/blog</link>
	<description>Pear Analytics - home of the free SEO analysis tool and website analyzer</description>
	<lastBuildDate>Mon, 23 Jan 2012 21:58:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Gaming Foursquare in Two Lines of Perl</title>
		<link>http://www.pearanalytics.com/blog/2010/gaming-foursquare-in-two-lines-of-perl/</link>
		<comments>http://www.pearanalytics.com/blog/2010/gaming-foursquare-in-two-lines-of-perl/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 17:29:46 +0000</pubDate>
		<dc:creator>Alex Ford</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Geeky]]></category>
		<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://www.pearanalytics.com/blog/?p=1741</guid>
		<description><![CDATA[Mayank Lahiri&#8217;s fabulous Foursquare gaming code challenge is an excellent write-up on a &#8220;small&#8221; problem with Foursquare&#8217;s check-in API.  You can check in from anywhere, but the system doesn&#8217;t verify where you are.  Clever programmers can get around this by taking notes of where their favorite venues are, and can then check-in whenever they want. [...]<p><a href="http://www.pearanalytics.com/blog/2010/gaming-foursquare-in-two-lines-of-perl/">Gaming Foursquare in Two Lines of Perl</a> is a post from Pear Analytics, an <a href="http://www.pearanalytics.com/blog">SEO tools and software</a> company.</p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.pearanalytics.com%2Fblog%2F2010%2Fgaming-foursquare-in-two-lines-of-perl%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.pearanalytics.com%2Fblog%2F2010%2Fgaming-foursquare-in-two-lines-of-perl%2F&amp;source=pearanalytics&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Mayank Lahiri&#8217;s fabulous <a href="http://compbio.cs.uic.edu/~mayank/4sq.html">Foursquare gaming code challenge</a> is an excellent write-up on a &#8220;small&#8221; problem with Foursquare&#8217;s check-in API.  You can check in from anywhere, but the system doesn&#8217;t verify where you are.  Clever programmers can get around this by taking notes of where their favorite venues are, and can then check-in whenever they want.  It may well be a long time before Foursquare learns to tell the difference between automated check-ins and people forgetting their keys.</p>
<p><span id="more-1741"></span></p>
<p>The &#8220;challenge&#8221; in &#8220;coding challenge&#8221; is this: how short can we make a program that checks into Foursquare like a person would?  There are a couple of basic mechanisms in play.  First, you have to open a connection, log in, and then make a check-in.  As it turns out, Foursquare&#8217;s API lets us automate most of the work, so long as we&#8217;re willing to pretend to be a browser.  My entry into the challenge is not so much an original entry as it is a refinement of the challenge&#8217;s script, as such, the basic idea (a script written in Perl that pretends to be an iPhone) is the same.</p>
<p>I submitted three lines to the challenge, but as an exclusive for this blog, I have it down to two, each of which is reproduced below:</p>
<pre>BEGIN {
    eval "use $_" for qw(MIME::Base64 IO::Socket)
}</pre>
<pre>readline do {
    printf({
        $sock = IO::Socket::INET-&gt;new(PeerAddr =&gt; 'api.foursquare.com',
                     PeerPort =&gt; 80, Proto =&gt; 'tcp', Type =&gt; SOCK_STREAM)
    } join (v13.10,
        "POST /v1/checkin HTTP/1.1" "Host: api.foursquare.com",
        "User-Agent: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) "
            . "AppleWebKit/420+ (KHTML, like Gecko) "
            . "Version/3.0 Mobile/1C10 Safari/419.3",
        "Content-Type: application/x-www-form-urlencoded",
        "Authorization: Basic ${\encode_base64 'YOUR_USERNAME_HERE' . ':'
            . 'YOUR_PASSWORD_HERE'}", 'Content-Length: %2$s', '', '%1$s'
        ), local $_ = sprintf('vid=%s&amp;private=0&amp;geolat=%s&amp;geolong=%s',
            $ARGV[0], map { $_ + rand() * 1e-4 - 5e-5 } @ARGV[1, 2]),
        2 + length),
    $sock
} if sleep rand() * 600</pre>
<p>Almost all of the script&#8217;s code occurs in the call to printf().  The first argument in the curly braces is the filehandle to print to, and the rest are a series of strings concatenated by v13.10 (&#8220;\r\n&#8221;, of course).  I&#8217;m abusing $_ in order to save creating a $str variable (the format &#8216;%2$s %1$s&#8217; will reverse the arguments to sprintf).  For maximum compatibility, I&#8217;ve used %s as a format for @ARGV[1, 2] despite them being floating-point.</p>
<p>As a signing-off note, astute readers will see that I submitted the vstring v15.12, which is incorrect.  I apologize for getting octal and decimal confused and hope that seasoned PDP-11 programmers can forgive me.</p>
<p><a href="http://www.pearanalytics.com/blog/2010/gaming-foursquare-in-two-lines-of-perl/">Gaming Foursquare in Two Lines of Perl</a> is a post from Pear Analytics, an <a href="http://www.pearanalytics.com/blog">SEO tools and software</a> company.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pearanalytics.com/blog/2010/gaming-foursquare-in-two-lines-of-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help us, help you!</title>
		<link>http://www.pearanalytics.com/blog/2009/help-us-help-you/</link>
		<comments>http://www.pearanalytics.com/blog/2009/help-us-help-you/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 20:41:42 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Sitejuice]]></category>
		<category><![CDATA[SiteJuice Updates]]></category>
		<category><![CDATA[site juice updates]]></category>
		<category><![CDATA[vid luther]]></category>

		<guid isPermaLink="false">http://www.pearanalytics.com/blog/?p=1040</guid>
		<description><![CDATA[We&#8217;d like to thank you for trying out SiteJuice as your SEO Tool.  Some of the feedback we&#8217;ve received shows us that the tool is not as intuitive as we initially thought, and we&#8217;re working hard to make some usability changes. This is not something we can accomplish in a week, so we&#8217;re launching the [...]<p><a href="http://www.pearanalytics.com/blog/2009/help-us-help-you/">Help us, help you!</a> is a post from Pear Analytics, an <a href="http://www.pearanalytics.com/blog">SEO tools and software</a> company.</p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.pearanalytics.com%2Fblog%2F2009%2Fhelp-us-help-you%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.pearanalytics.com%2Fblog%2F2009%2Fhelp-us-help-you%2F&amp;source=pearanalytics&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>We&#8217;d like to thank you for trying out SiteJuice as your SEO Tool.  Some of the feedback we&#8217;ve received shows us that the tool is not as intuitive as we initially thought, and we&#8217;re working hard to make some usability changes. This is not something we can accomplish in a week, so we&#8217;re launching the next best thing: <strong>live chat!</strong></p>
<p>We&#8217;re excited to announce the availability of live chat <strong>today</strong> to help answer your questions in real time, so we encourage you to use this feature when something isn&#8217;t obvious, or you&#8217;re getting frustrated with the UI.</p>
<p>Or if you&#8217;re bored and just want to chat with Graham, Ryan, or Vid. <img src='http://www.pearanalytics.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you&#8217;ve never used a live chat feature before, it&#8217;s rather simple. There is now a link in the header at the top right you can click which will launch a separate window for the chat. Enter a screen name with your question and click submit to get started. You&#8217;ll automatically be connected to one of us here who can help you. That&#8217;s all there is to it!  If we happen to be unavailable, you can still submit a question through the chat window and we will get on it right away.</p>
<p><strong>A few things we&#8217;re working on:</strong></p>
<ul>
<li>making the user interface more intuitive.  Some folks have mentioned that the green banner is confusing and looks like primary navigation, and everything else is sub navigation.</li>
<li>There are a couple of bugs in Link Analysis and Keyword Watch.  You may see some keywords come up with no search volume, or the position is incorrect.  Link Analysis is not scoring each link properly in some cases.</li>
<li>We&#8217;re going to put an &#8220;In process&#8221; indicator for ech new keyword that you add to Keyword Watch, and also add a button to allow you to add all of the keyword suggestions at once.</li>
<li><span style="text-decoration: line-through;">Competitor Monitoring may show you some competitors in the list that you did not add&#8230;</span>..we believe we fixed that this morning</li>
</ul>
<p>Please continue to provide feedback &#8211; we appreciate your support!</p>
<p><a href="http://www.pearanalytics.com/blog/2009/help-us-help-you/">Help us, help you!</a> is a post from Pear Analytics, an <a href="http://www.pearanalytics.com/blog">SEO tools and software</a> company.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pearanalytics.com/blog/2009/help-us-help-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SiteJuice Update &#8211; New Settings Page</title>
		<link>http://www.pearanalytics.com/blog/2009/sitejuice-update-new-setting-page/</link>
		<comments>http://www.pearanalytics.com/blog/2009/sitejuice-update-new-setting-page/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 21:40:21 +0000</pubDate>
		<dc:creator>Ryan Kelly</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Sitejuice]]></category>
		<category><![CDATA[SiteJuice Updates]]></category>

		<guid isPermaLink="false">http://www.pearanalytics.com/blog/?p=998</guid>
		<description><![CDATA[Dear Beta Testers, We released an update to the Settings page this week that should make the process much easier.  Here is what the changes are: 1.  Now you simply add a page to your account, and we break it out into the domain/page hierarchy for you.  No more having to create the domain, and [...]<p><a href="http://www.pearanalytics.com/blog/2009/sitejuice-update-new-setting-page/">SiteJuice Update &#8211; New Settings Page</a> is a post from Pear Analytics, an <a href="http://www.pearanalytics.com/blog">SEO tools and software</a> company.</p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.pearanalytics.com%2Fblog%2F2009%2Fsitejuice-update-new-setting-page%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.pearanalytics.com%2Fblog%2F2009%2Fsitejuice-update-new-setting-page%2F&amp;source=pearanalytics&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Dear Beta Testers,</p>
<p>We released an update to the Settings page this week that should make the process much easier.  Here is what the changes are:</p>
<p>1.  Now you simply add a page to your account, and we break it out into the domain/page hierarchy for you.  No more having to create the domain, and then the pages under it.</p>
<p>2.  It will be easier to see what reports are currently running.  You&#8217;ll see the last report ran for each domain, as well as what&#8217;s currently running in the queue.  An email will still be sent when the analysis is complete.</p>
<p>3.  Now you can edit and delete domains, pages and competitors.  When you delete a page, that page and all of its history will be deleted.  When you edit a page, the old version will be deleted, and we will start tracking the new version since we assume that it was primarily a typo.</p>
<p>4.  There is now the ability to archive domains and the pages and competitors associated with them.  For SEO consultants, this might be useful if you work with several clients and you want to move one into an inactive status.  Analysis on those domains, pages and competitors will stop until they are unarchived.  Once unarchived, the analysis will resume and all of the previous data will be available.</p>
<p>Thanks for all your feedback, keep it coming, and we&#8217;ll keep making Sitejuice better for you.</p>
<p>Not using SiteJuice yet?  <a title="Sign up for SiteJuice for free." href="http://apps.pearanalytics.com/signup" target="_self">Sign up here.</a></p>
<p><a href="http://www.pearanalytics.com/blog/2009/sitejuice-update-new-setting-page/">SiteJuice Update &#8211; New Settings Page</a> is a post from Pear Analytics, an <a href="http://www.pearanalytics.com/blog">SEO tools and software</a> company.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pearanalytics.com/blog/2009/sitejuice-update-new-setting-page/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

