<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>Comments on: Location, Location, Location</title>
	<atom:link href="http://www.spyparty.com/2011/05/16/location-location-location/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spyparty.com/2011/05/16/location-location-location/</link>
	<description>Chris Hecker&#039;s new espionage game about subtle behavior, performance, perception, and deception.</description>
	<lastBuildDate>Wed, 09 Apr 2014 01:56:53 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8.2</generator>
	<item>
		<title>By: Chelsea</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-16900</link>
		<dc:creator><![CDATA[Chelsea]]></dc:creator>
		<pubDate>Sun, 29 May 2011 18:03:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-16900</guid>
		<description><![CDATA[They could be using Tor or another proxy server or something too.]]></description>
		<content:encoded><![CDATA[<p>They could be using Tor or another proxy server or something too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Soupnazi</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15945</link>
		<dc:creator><![CDATA[Soupnazi]]></dc:creator>
		<pubDate>Sun, 22 May 2011 19:20:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15945</guid>
		<description><![CDATA[That&#039;s my 100 signups. :P

That&#039;s actually a really good question. I wonder...]]></description>
		<content:encoded><![CDATA[<p>That&#8217;s my 100 signups. :P</p>
<p>That&#8217;s actually a really good question. I wonder&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jordy</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15566</link>
		<dc:creator><![CDATA[jordy]]></dc:creator>
		<pubDate>Fri, 20 May 2011 21:00:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15566</guid>
		<description><![CDATA[I wonder who those people are in the middle of no where.]]></description>
		<content:encoded><![CDATA[<p>I wonder who those people are in the middle of no where.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15456</link>
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Wed, 18 May 2011 15:11:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15456</guid>
		<description><![CDATA[Ah, I get the gist, thanks :)]]></description>
		<content:encoded><![CDATA[<p>Ah, I get the gist, thanks :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: agentorange</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15446</link>
		<dc:creator><![CDATA[agentorange]]></dc:creator>
		<pubDate>Wed, 18 May 2011 13:17:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15446</guid>
		<description><![CDATA[I&#039;m the Guam blob. ]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m the Guam blob. </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Soupnazi</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15416</link>
		<dc:creator><![CDATA[Soupnazi]]></dc:creator>
		<pubDate>Tue, 17 May 2011 22:58:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15416</guid>
		<description><![CDATA[Whoa, totally cool.

Gosh, my whole state is covered in blue/green.]]></description>
		<content:encoded><![CDATA[<p>Whoa, totally cool.</p>
<p>Gosh, my whole state is covered in blue/green.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: checker</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15394</link>
		<dc:creator><![CDATA[checker]]></dc:creator>
		<pubDate>Tue, 17 May 2011 16:33:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15394</guid>
		<description><![CDATA[A bunch of totally hacked terrible code I wrote, filled with stuff like this:
&lt;pre&gt;
    assert((w == 1236) &amp;&amp; (h == 1165));
    MercatorAspectRatio = float(w)/float(h);
    EquatorY = float(h-565)/float(h);
    MeridianX = float(618)/float(w);
    LatScale = (float(h-456)/float(h) - EquatorY)/0.549306144335f;   // 30 degrees
    LonScale = 1-MeridianX;
&lt;/pre&gt;
or this:
&lt;pre&gt;
vector_2 XYFromLatLon( float lat, float lon )
{
    float x = MeridianX + LonScale*(lon/180.0);
    lat = RadiansFrom(lat);
    float y = EquatorY + LatScale*log((sin(lat) + 1)/cos(lat));
    // return vector_2(WindowWidth*x,(WindowWidth/MercatorAspectRatio)*y);
    return vector_2(MercatorAspectRatio*x,y);
}
&lt;/pre&gt;
and this:
&lt;pre&gt;
    glBindTexture(GL_TEXTURE_2D,BlobTexId);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glBegin(GL_QUADS);
    for(uint i = 0, ni = IPAddresses.size(); i &lt; ni; ++i) {
        uint ip = IPAddresses[i];
        geo_ip_range* range = FindIPRange(ip);
        if(!range) {
            continue;
        }
        geo_location* loc = FindLocation(range-&gt;locid);  assert(loc);
        float r = 0.007f, a = 0.15;
        vector_3 green = RGBtoHSV(vector_3(0.0f,1.0f,0.0f));
        vector_3 blue = RGBtoHSV(vector_3(0.0f,0.0f,1.0f));
        float t = float(i)/float(ni);
        vector_3 c = HSVtoRGB(t*green + (1-t)*blue);
        glColor4f(c.x,c.y,c.z,a);

        vector_2 xy = XYFromLatLon(loc-&gt;lat,loc-&gt;lon) + r*vector_2(genrand_real_cc()-0.5f,genrand_real_cc()-0.5f);
        float z = i*1e-7f;
        glTexCoord2f(0,0); glVertex3fv(make_v3(xy-vector_2(-r,-r),z).el);
        glTexCoord2f(1,0); glVertex3fv(make_v3(xy-vector_2( r,-r),z).el);
        glTexCoord2f(1,1); glVertex3fv(make_v3(xy-vector_2( r, r),z).el);
        glTexCoord2f(0,1); glVertex3fv(make_v3(xy-vector_2(-r, r),z).el);
    }
    glEnd();
&lt;/pre&gt;

Etc.  Basically, I downloaded the geolocation csv files and map I mention above, figured out where the important parts of the map were in the image, load it in, render it as a texture, then look up all the IPs and splat them down as a little gaussian alpha blob texture.]]></description>
		<content:encoded><![CDATA[<p>A bunch of totally hacked terrible code I wrote, filled with stuff like this:</p>
<pre>
    assert((w == 1236) &amp;&amp; (h == 1165));
    MercatorAspectRatio = float(w)/float(h);
    EquatorY = float(h-565)/float(h);
    MeridianX = float(618)/float(w);
    LatScale = (float(h-456)/float(h) - EquatorY)/0.549306144335f;   // 30 degrees
    LonScale = 1-MeridianX;
</pre>
<p>or this:</p>
<pre>
vector_2 XYFromLatLon( float lat, float lon )
{
    float x = MeridianX + LonScale*(lon/180.0);
    lat = RadiansFrom(lat);
    float y = EquatorY + LatScale*log((sin(lat) + 1)/cos(lat));
    // return vector_2(WindowWidth*x,(WindowWidth/MercatorAspectRatio)*y);
    return vector_2(MercatorAspectRatio*x,y);
}
</pre>
<p>and this:</p>
<pre>
    glBindTexture(GL_TEXTURE_2D,BlobTexId);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glBegin(GL_QUADS);
    for(uint i = 0, ni = IPAddresses.size(); i < ni; ++i) {
        uint ip = IPAddresses[i];
        geo_ip_range* range = FindIPRange(ip);
        if(!range) {
            continue;
        }
        geo_location* loc = FindLocation(range->locid);  assert(loc);
        float r = 0.007f, a = 0.15;
        vector_3 green = RGBtoHSV(vector_3(0.0f,1.0f,0.0f));
        vector_3 blue = RGBtoHSV(vector_3(0.0f,0.0f,1.0f));
        float t = float(i)/float(ni);
        vector_3 c = HSVtoRGB(t*green + (1-t)*blue);
        glColor4f(c.x,c.y,c.z,a);

        vector_2 xy = XYFromLatLon(loc-&gt;lat,loc-&gt;lon) + r*vector_2(genrand_real_cc()-0.5f,genrand_real_cc()-0.5f);
        float z = i*1e-7f;
        glTexCoord2f(0,0); glVertex3fv(make_v3(xy-vector_2(-r,-r),z).el);
        glTexCoord2f(1,0); glVertex3fv(make_v3(xy-vector_2( r,-r),z).el);
        glTexCoord2f(1,1); glVertex3fv(make_v3(xy-vector_2( r, r),z).el);
        glTexCoord2f(0,1); glVertex3fv(make_v3(xy-vector_2(-r, r),z).el);
    }
    glEnd();
</pre>
<p>Etc.  Basically, I downloaded the geolocation csv files and map I mention above, figured out where the important parts of the map were in the image, load it in, render it as a texture, then look up all the IPs and splat them down as a little gaussian alpha blob texture.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15375</link>
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Tue, 17 May 2011 09:14:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15375</guid>
		<description><![CDATA[Absolutely fabulous! I&#039;m in the northern scandinavia blob ;)

What did you use to render the map, if you&#039;d care to give a short comment?]]></description>
		<content:encoded><![CDATA[<p>Absolutely fabulous! I&#8217;m in the northern scandinavia blob ;)</p>
<p>What did you use to render the map, if you&#8217;d care to give a short comment?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luis Riquelme</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15373</link>
		<dc:creator><![CDATA[Luis Riquelme]]></dc:creator>
		<pubDate>Tue, 17 May 2011 08:41:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15373</guid>
		<description><![CDATA[Nice. Congratulations for all the interest you have generated. I&#039;m really excited to try the game.
By the way, what software/code did you use to colour the map?]]></description>
		<content:encoded><![CDATA[<p>Nice. Congratulations for all the interest you have generated. I&#8217;m really excited to try the game.<br />
By the way, what software/code did you use to colour the map?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jared</title>
		<link>http://www.spyparty.com/2011/05/16/location-location-location/comment-page-1/#comment-15370</link>
		<dc:creator><![CDATA[Jared]]></dc:creator>
		<pubDate>Tue, 17 May 2011 06:43:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.spyparty.com/?p=1721#comment-15370</guid>
		<description><![CDATA[Is it me, or does it seem like it just skips over Oregon completely?  lol, WE ARE HERE AND WE WANT TO ENJOY IT CHRIS!]]></description>
		<content:encoded><![CDATA[<p>Is it me, or does it seem like it just skips over Oregon completely?  lol, WE ARE HERE AND WE WANT TO ENJOY IT CHRIS!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Object Caching 461/466 objects using apc
Content Delivery Network via Amazon Web Services: CloudFront: cdn.spyparty.com

 Served from: www.spyparty.com @ 2014-04-13 04:02:06 by W3 Total Cache -->