<?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/"
	>

<channel>
	<title>Dawn of the Geeks</title>
	<atom:link href="http://blog.dawnofthegeeks.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dawnofthegeeks.com</link>
	<description></description>
	<pubDate>Fri, 03 Jul 2009 16:50:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Emotional State of the Internet</title>
		<link>http://blog.dawnofthegeeks.com/2009/07/03/the-emotional-state-of-the-internet/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/07/03/the-emotional-state-of-the-internet/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 16:50:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=540</guid>
		<description><![CDATA[The Emotional State of the Internet is a website which analyzes Twitter messages and calculates how the internet is feeling.  It&#8217;s updated every 10 minutes.  You can also see a historical chart of the current top emotion.  
It&#8217;s interesting to see the difference between what emotion people twitter about the most in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://internet.dawnofthegeeks.com/">The Emotional State of the Internet</a> is a website which analyzes Twitter messages and calculates how the internet is feeling.  It&#8217;s updated every 10 minutes.  You can also see a historical chart of the current top emotion.  </p>
<p>It&#8217;s interesting to see the difference between what emotion people twitter about the most in various languages.  French speakers talk about how lonely they are.  Germans by a wide margin talk about &#8220;angst&#8221; the most.  While Google Translate tells me it means &#8220;frightened&#8221; in English, according to Wikipedia it more accurately translates to &#8220;anxiety.&#8221;  This is why I keep the original word listed and put the English translation in parantheses.</p>
<p>Italians tend to talk most about being &#8220;triste&#8221; which means sad while Spanish speakers talk by a slightly wider margin about being happy.</p>
<p>Maybe Spanish speakers are happier than everyone else or maybe they use Twitter mostly to express happiness and tend to keep other emotions to themselves.</p>
<p>If you want to what people are getting emotional about you can click on &#8220;keywords&#8221; at the top of the page.  That will list all the current keywords for all the various emotions the site is tracking.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/07/03/the-emotional-state-of-the-internet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Running on Flash</title>
		<link>http://blog.dawnofthegeeks.com/2009/07/02/running-on-flash/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/07/02/running-on-flash/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 21:23:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=538</guid>
		<description><![CDATA[Solid state drives are finally becoming large enough that computers can be built without a conventional hard drive.  Any modern OS can be installed on a solid state drive now.  However, they&#8217;re very expensive and can&#8217;t hold as much as the conventional drives.  The basic idea is that you use a solid [...]]]></description>
			<content:encoded><![CDATA[<p>Solid state drives are finally becoming large enough that computers can be built without a conventional hard drive.  Any modern OS can be installed on a solid state drive now.  However, they&#8217;re very expensive and can&#8217;t hold as much as the conventional drives.  The basic idea is that you use a solid state drive for your OS to speed up your system but continue using large conventional drives for all your personal data.  It&#8217;s generally a good idea to keep your personal data on one drive and your OS on another regardless of what type of hard drives you use.</p>
<p>What I&#8217;m finding flash drives to be very useful for is running web sites off of them.  I&#8217;ve been running my own servers for years and end up having to buy new hard drives every year which gets expensive.  I realized that the majority of my web-sites are essentially static and they&#8217;re small.</p>
<p>So for $5 I can store all my web-sites on a 1-2GB flash drive.  If the drive dies I can replace it for $5 instead of $35-100.</p>
<p>The advantage of using a flash drive is that the sites load much faster.  The hard drive is no longer a limiting factor for the site itself.  Just the database which of course still uses a regular hard drive since flash drives die quickly with heavy writing.</p>
<p>My server used to have a hard drive for the OS and web apps, the database, the logs and the web-sites themselves.  I stopped bothering with logging since it&#8217;s too much useless information and there are better ways to log errors and visits without being limited to the server app (Apache or IIS).  So now my server is down to two conventional drives and as many flash drives as I need.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/07/02/running-on-flash/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Apache as a Proxy for Server 2003</title>
		<link>http://blog.dawnofthegeeks.com/2009/06/29/using-apache-as-a-proxy-for-server-2003/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/06/29/using-apache-as-a-proxy-for-server-2003/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 17:09:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=536</guid>
		<description><![CDATA[Putting the &#8220;geek&#8221; in Dawn of the Geeks are two servers I have set up.  The first server is running Windows XP with Apache, MySQL, PHP and Subversion.  Recently I began developing .Net web sites using C#.   Namely the bank site which is used for managing and tracking personal finances.  Windows XP only allows a [...]]]></description>
			<content:encoded><![CDATA[<p>Putting the &#8220;geek&#8221; in Dawn of the Geeks are two servers I have set up.  The first server is running Windows XP with Apache, MySQL, PHP and Subversion.  Recently I began developing .Net web sites using C#.   Namely the bank site which is used for managing and tracking personal finances.  Windows XP only allows a single web-site to run and only has IIS 5.1.  Since I have a copy of Windows Server 2003 I decided to put it to use and installed it on another server.  That server just has Windows 2003 with II6.</p>
<p>Now the issue is that all port 80 requests go through Apache.  So the first step was to install mod_proxy and mod_proxy_html.  Now I can point various hosts to the second server.  However mod_proxy doesn&#8217;t pass along the original host header.  It was sending it to the internal IP.  Well, IIS 6 needs to know what host it&#8217;s serving for as well if you want to run multiple sites.</p>
<p>The trick is to modify your hosts file on the Apache server so that the host name maps to the internal server.</p>
<p>The flow is</p>
<p>bank.dawnofthegeeks.com hits the DNS server and points to the public IP of my router.  The router sends the port 80 request to the apache server.  The apache server sees that it&#8217;s dealing with bank.dawnofthegeeks.com and reverse proxy&#8217;s it to bank.dawnofthegeeks.com, however when Windows XP tries to resolve that host name it gets the internal IP from the hosts file rather than the public IP of the router from the DNS servers.  So the request gets sent to the IIS server which sees the hostname bank.dawnofthegeeks.com and serves up the correct web back through the proxy.</p>
<p>Through the magic of the hosts file Apache reverse proxies a host to the same host.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/06/29/using-apache-as-a-proxy-for-server-2003/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using JavaScript to Track Visitors</title>
		<link>http://blog.dawnofthegeeks.com/2009/06/16/using-javascript-to-track-visitors/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/06/16/using-javascript-to-track-visitors/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:03:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=535</guid>
		<description><![CDATA[This is log.js that goes in a central location
log.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if &#40;typeof&#40;km_scripts&#41; == 'undefined'&#41; 
	var km_scripts = new Object&#40;&#41;;
&#160;
km_myclass_import&#40;'http://js.dawnofthegeeks.com/hitlog.php?REQUEST_URI=' + document.location + '&#38;HTTP_REFERER=' + document.referrer&#41;;
&#160;
function km_myclass_import&#40;jsFile&#41; 
&#123;
	if &#40;km_scripts&#91;jsFile&#93; != null&#41; 
		return;
	var scriptElt = document.createElement&#40;'script'&#41;;
	scriptElt.type = 'text/javascript';
	scriptElt.src = jsFile;
	document.getElementsByTagName&#40;'head'&#41;&#91;0&#93;.appendChild&#40;scriptElt&#41;;
	km_scripts&#91;jsFile&#93; = jsFile;
&#125;

This line of HTML goes at the bottom of every page that I want to track

1
&#60;SCRIPT LANGUAGE=&#34;JavaScript&#34; SRC=&#34;http://js.dawnofthegeeks.com/log.js&#34;&#62;&#60;/SCRIPT&#62;

hitlog.php [...]]]></description>
			<content:encoded><![CDATA[<p>This is log.js that goes in a central location</p>
<p><b>log.js</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>km_scripts<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> 
	<span style="color: #003366; font-weight: bold;">var</span> km_scripts <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Object<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
km_myclass_import<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'http://js.dawnofthegeeks.com/hitlog.php?REQUEST_URI='</span> <span style="color: #339933;">+</span> document.<span style="color: #660066;">location</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&amp;HTTP_REFERER='</span> <span style="color: #339933;">+</span> document.<span style="color: #660066;">referrer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> km_myclass_import<span style="color: #009900;">&#40;</span>jsFile<span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>km_scripts<span style="color: #009900;">&#91;</span>jsFile<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> 
		<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> scriptElt <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	scriptElt.<span style="color: #660066;">type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'text/javascript'</span><span style="color: #339933;">;</span>
	scriptElt.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> jsFile<span style="color: #339933;">;</span>
	document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>scriptElt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	km_scripts<span style="color: #009900;">&#91;</span>jsFile<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> jsFile<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>This line of HTML goes at the bottom of every page that I want to track</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; SRC=&quot;http://js.dawnofthegeeks.com/log.js&quot;&gt;&lt;/SCRIPT&gt;</pre></td></tr></table></div>

<p>hitlog.php does the hard work of logging the various information to a MySQL database.  I can then go to my stats page and see the unique visitors and page view count for every domain that line of HTML appears on.  I could break it down by pages as well but for now I&#8217;m not that interested in that level of detail in my reports.</p>
<p>In order to avoid having massive unmanagable tables (GoDaddy limits you to 200MB per database) each month has its own table.  If I&#8217;m running out of space in the database I can export the older tables and delete them from the GoDaddy servers.</p>
<p><b>hitlog.php</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #666666; font-style: italic;">// define: $dbhost, $dbuser, $dbpass, $dbbase;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> ConnectToJS<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #990000;">global</span> <span style="color: #000088;">$dbhost</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbuser</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbpass</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbbase</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dbhost</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dbuser</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dbpass</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dbbase</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$db</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> ConnectToJS<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$table</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;logs_&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y_m&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;
CREATE TABLE IF NOT EXISTS `<span style="color: #006699; font-weight: bold;">$table</span>` (
  `id` bigint(20) NOT NULL auto_increment,
  `hash` varchar(255) NOT NULL,
  `ip` varchar(255) NOT NULL,
  `ip_int` bigint(20) NOT NULL,
  `ip_host` varchar(255) NOT NULL,
  `ip_country_id` int(10) NOT NULL,
  `created_at` datetime NOT NULL,
  `path` varchar(255) NOT NULL,
  `referer` varchar(255) NOT NULL,
  `referer_host` varchar(255) NOT NULL,
  `query_str` varchar(255) NOT NULL,
  `agent` varchar(255) NOT NULL,
  `host` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `hash` (`hash`),
  KEY `host` (`host`),
  KEY `ip_country_id` (`ip_country_id`),
  KEY `referer` (`referer`),
  KEY `agent` (`agent`),
  KEY `created_at` (`created_at`),
  KEY `referer_host` (`referer_host`)
) ENGINE=MyISAM 
&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000088;">$ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ip_host</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gethostbyaddr</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">parse_url</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$ip_int</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ip_int</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$ip_int</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">256</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$ip_int</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">256</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$ip_int</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">256</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$ip_int</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;
	SELECT
		id
	FROM
		ip_to_country
	WHERE
		<span style="color: #006699; font-weight: bold;">$ip_int</span> &gt;= ip_start AND <span style="color: #006699; font-weight: bold;">$ip_int</span> &lt;= ip_end
&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_assoc</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ip_country_id</span> <span style="color: #339933;">=</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$created_at</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$referer</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_REFERER'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ref_parts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">parse_url</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$referer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$referer_host</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$ref_parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'host'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$query_str</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$ref_parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'query'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$agent</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_USER_AGENT'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$host</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'host'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$hash</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$created_at</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$path</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$referer</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$agent</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$host</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;
INSERT INTO 
	<span style="color: #006699; font-weight: bold;">$table</span>
SET
	hash = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hash</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	ip = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	ip_host = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip_host</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	ip_int = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip_int</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	ip_country_id = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip_country_id</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	created_at = NOW(),
	path = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	referer = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$referer</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	referer_host = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$referer_host</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	query_str = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query_str</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	agent = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$agent</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>,
	host = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$host</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>
&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/06/16/using-javascript-to-track-visitors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A-Star Path Finding</title>
		<link>http://blog.dawnofthegeeks.com/2009/05/15/a-star-path-finding/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/05/15/a-star-path-finding/#comments</comments>
		<pubDate>Fri, 15 May 2009 21:02:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=534</guid>
		<description><![CDATA[A-Star (A*) Implementation in C# is an excellent implementation of A* in C#.  It plugged neatly into Bunnies 3.0 which will soon have a sequal &#8220;Zombies.&#8221;  The AI in Bunnies consists of stupid bunnies that just bounce around and multiply and slightly more intelligent enemies that will come at you and shoot at [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/article.php/c12527/">A-Star (A*) Implementation in C#</a> is an excellent implementation of A* in C#.  It plugged neatly into Bunnies 3.0 which will soon have a sequal &#8220;Zombies.&#8221;  The AI in Bunnies consists of stupid bunnies that just bounce around and multiply and slightly more intelligent enemies that will come at you and shoot at you if they see you.  In &#8220;Zombies&#8221; you can run but you can&#8217;t hide.  The game will be slow moving but difficult to kill hordes of enemies with limited ammo and various weapons.  The A* algorithm is being used by the zombies to always keep them moving towards you no matter where you go.</p>
<p>This isn&#8217;t my first use of the A* algorithm and the flaws with it are still there.  My first use of A* was for a simulator that had tanks and flying vehicals moving around complex 3D terrain that was created using DEM data (geological survey data of real life locations).  One of the test paths took a helicopter over Mount Saint Helens.  The helicopter would fly up the side of the mountain at the maximum pitch, fly down into the mountain, fly up out of the mountain and then fly down the side of the mountain to the destination.</p>
<p>The reason it did this is because A* always wants to be close to the final destination which was at the base of the other side of the mountain.  So if it got a chance to lower the altitude to be close to the base it did.  But that&#8217;s obviously not the optimum path.  The fix for flying vehicals is to find the farthest point in the list of destinations which can be seen with a simple line of sight check.  So from the base of the mountain the helicopter can see the top of the mountain so it heads straight there.  From there it can see the other side of the rim so it flies straight there.  And from there it can see it&#8217;s destination so it flies straight there.   A path that was dozens of points is reduced to less than 10.</p>
<p>The technique is basically just doing intelligent post processing on the A* path to cut out unnecessary steps.  Land vehicals had limits on the angle of the terrain they were going over.  Sometimes A* would come up with tangled paths that didn&#8217;t go anywhere.  So to fix that I found the farthest point along the A* path that the vehical could see and travel to without violating the steepness rule.  That easily cut out knots that A* had created and simplified paths significantly.</p>
<p>Because the Bunnies Engine deals with flat terrain the line of sight algorithm can be used on the zombies to simplify their movement.  Once I start putting together an actual tutorial on A* I&#8217;ll give visual examples of how post processing helps clean up A*.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/05/15/a-star-path-finding/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Real Time Software Rendering is Moving</title>
		<link>http://blog.dawnofthegeeks.com/2009/04/30/real-time-software-rendering-is-moving/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/04/30/real-time-software-rendering-is-moving/#comments</comments>
		<pubDate>Fri, 01 May 2009 00:38:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=533</guid>
		<description><![CDATA[The original software rendering location will remain up for now while I slowly transition each of the lessons to the new Real Time Software Rendering Blog.
I found that it was quite the pain to update the old site since it was all static HTML and any syntax highlighted code was highlighted by hand.  WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.dawnofthegeeks.com/software_rendering/">original software rendering</a> location will remain up for now while I slowly transition each of the lessons to the new <a href="http://code.dawnofthegeeks.com">Real Time Software Rendering Blog</a>.</p>
<p>I found that it was quite the pain to update the old site since it was all static HTML and any syntax highlighted code was highlighted by hand.  WordPress has a handy dandy plugin that automatically does the syntax highlighting.  So this move will hopefully motivate me to continue adding new lessons on more topics.</p>
<p>There is certainly no shortage of lesson ideas that I&#8217;d like to cover.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/04/30/real-time-software-rendering-is-moving/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mod Proxy Silliness</title>
		<link>http://blog.dawnofthegeeks.com/2009/04/15/mod-proxy-silliness/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/04/15/mod-proxy-silliness/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 19:25:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=527</guid>
		<description><![CDATA[By default the latest version of mod_proxy strips out the doc type declaration.  To add it back in add

ProxyHTMLDoctype &#8220;&#60;!DOCTYPE html PUBLIC \&#8221;-//W3C//DTD XHTML 1.0 Transitional//EN\&#8221; \&#8221;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\&#8221;&#62;&#8221; [Legacy]

to your proxy config file.  You can make it global or site specific.  I&#8217;m not sure why the authors of mod_proxy deemed it necessary to [...]]]></description>
			<content:encoded><![CDATA[<p>By default the latest version of mod_proxy strips out the doc type declaration.  To add it back in add</p>
<blockquote><p>
ProxyHTMLDoctype &#8220;&lt;!DOCTYPE html PUBLIC \&#8221;-//W3C//DTD XHTML 1.0 Transitional//EN\&#8221; \&#8221;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\&#8221;&gt;&#8221; [Legacy]
</p></blockquote>
<p>to your proxy config file.  You can make it global or site specific.  I&#8217;m not sure why the authors of mod_proxy deemed it necessary to strip it out in the first place.  A proxy should for the most part send the HTML through unedited.  The only necessary changes should be to ensure that references are mapped properly so they go to external addresses rather than internal addresses.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/04/15/mod-proxy-silliness/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Once the Scientist has Spoken&#8230;</title>
		<link>http://blog.dawnofthegeeks.com/2009/03/29/once-the-scientist-has-spoken/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/03/29/once-the-scientist-has-spoken/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 06:12:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=523</guid>
		<description><![CDATA[all the thinking has been done, apparently.
Slashdot.org is whining:

The good news is that the board dropped a 20-year-old requirement that both &#8220;strengths and weaknesses&#8221; of all scientific theories be taught; score one for the teaching of evolution.
&#8230;
The not-so-good news is that in a &#8220;compromise,&#8221; the board also voted to require that students &#8220;in all fields [...]]]></description>
			<content:encoded><![CDATA[<p>all the thinking has been done, apparently.</p>
<p><a href="http://news.slashdot.org/article.pl?sid=09/03/30/0151221">Slashdot.org</a> is whining:</p>
<blockquote><p>
The good news is that the board dropped a 20-year-old requirement that both &#8220;strengths and weaknesses&#8221; of all scientific theories be taught; score one for the teaching of evolution.<br />
&#8230;<br />
The not-so-good news is that in a &#8220;compromise,&#8221; the board also voted to require that students &#8220;in all fields of science, analyze, evaluate and critique scientific explanations&#8230; including examining all sides of scientific evidence of those scientific explanations, so as to encourage critical thinking by the student.&#8221; Score one for the Discovery Institute.
</p></blockquote>
<p>Apparently it&#8217;s a win for evolution when you just ignore the large gapping holes in the theory.  The teaching of evolution has gotten so ridiculous that to the true believers the theory of evolution is on par with the theory of gravity.  There is also no longer a distinction between &#8220;micro&#8221; and &#8220;macro&#8221; evolution and the education on that has gotten so bad that people actually think those two terms were created by a creationist as some sort of attack of evolution.</p>
<p>The &#8220;compromise&#8221; is to stop poking the evolutionists by running Mac Trucks through the theory and allowing them to pick the strengths.  So basically the text book author goes to an Evolutionist and says &#8220;hey, what&#8217;s a good proof of evolution?&#8221;  And the evolutionist says &#8220;Dinosaurs.&#8221;  The text book author is then free to point out that Dinosaurs do nothing to prove the theory of evolution.  As long as evolutionists pick the topics, the authors can have at it.</p>
<p>Evolution is the only scientific theory I&#8217;m aware of where it&#8217;s a &#8220;win&#8221; when you can&#8217;t criticize it.  There are plenty of cults were that is true and it&#8217;s rather odd to find that attitude when the core beliefs of the group relate to something other than religious doctrines.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/03/29/once-the-scientist-has-spoken/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CallingAmerica.com: Ad-Supported VoIP Calling Network</title>
		<link>http://blog.dawnofthegeeks.com/2009/03/17/callingamericacom-ad-supported-voip-calling-network/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/03/17/callingamericacom-ad-supported-voip-calling-network/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 17:32:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Advertisement]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=521</guid>
		<description><![CDATA[CallingAmerica.com is the first completely ad-supported VoIP calling network. Anyone across the U.S. can visit CallingAmerica.com to make free calls to any landline or mobile phone in the country. 
New York Times

In trying times like these, every little bit helps, even if it’s just saving the price of a phone call. CallingAmerica.com is a new [...]]]></description>
			<content:encoded><![CDATA[<p>CallingAmerica.com is the first completely ad-supported VoIP calling network. Anyone across the U.S. can visit CallingAmerica.com to make free calls to any landline or mobile phone in the country. </p>
<p><a href="http://www.nytimes.com/2008/12/18/technology/personaltech/18calling.html?_r=1">New York Times</a></p>
<blockquote><p>
In trying times like these, every little bit helps, even if it’s just saving the price of a phone call. CallingAmerica.com is a new ad-supported Web service that lets you make phone calls to any number in the United States from any computer with a Web browser and a broadband connection.</p>
<p>The service &#8230; requires you to view a short ad before you place the call. The audio is played through the browser, and the site uses your computer’s microphone to transmit what you say.</p>
<p>There is a limit to the fun, however. Unregistered users can make calls of up to two minutes; registration — which is also free — gives you unlimited calls of up to 15 minutes. While it’s not as versatile as other Internet calling services like Skype or Vonage, it is enough to make a few quick calls while on the road without racking up long-distance charges.
</p></blockquote>
<p><a href="https://affiliates.izea.com/event/1381-108-1094" rel="nofollow"><img src="https://affiliates.izea.com/event/1381-108-1094.gif" alt="" title="" width="1" height="1" border="0" /><br />
CallingAmerica.com Free USA Calls !<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/03/17/callingamericacom-ad-supported-voip-calling-network/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Elmo&#8217;s World: The Video Game</title>
		<link>http://blog.dawnofthegeeks.com/2009/01/08/elmos-world-the-video-game/</link>
		<comments>http://blog.dawnofthegeeks.com/2009/01/08/elmos-world-the-video-game/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 06:14:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.dawnofthegeeks.com/?p=506</guid>
		<description><![CDATA[Elmo&#8217;s World: The Video Game is not licensed or endorsed by Sesame Street. All graphics and sounds are used without permission. It&#8217;s a homemade game that your small kids might enjoy.
Download Elmo&#8217;s World: The Video Game
System Requirements:
Windows XP/Vista
Microsoft XNA Framework Redistributable 3.0
Bluetooth Adapter
Nintendo Wii Remote
Wii Sensor Bar
Screenshots:




Installation:
Download and unzip to any folder you create. You [...]]]></description>
			<content:encoded><![CDATA[<p>Elmo&#8217;s World: The Video Game is not licensed or endorsed by Sesame Street. All graphics and sounds are used without permission. It&#8217;s a homemade game that your small kids might enjoy.</p>
<p>Download <a href="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/elmo.zip">Elmo&#8217;s World: The Video Game</a></p>
<p><strong>System Requirements:</strong><br />
Windows XP/Vista<br />
<a href="http://www.microsoft.com/downloads/details.aspx?familyid=6521D889-5414-49B8-AB32-E3FFF05A4C50&#038;displaylang=en">Microsoft XNA Framework Redistributable 3.0</a><br />
Bluetooth Adapter<br />
Nintendo Wii Remote<br />
Wii Sensor Bar</p>
<p><strong>Screenshots:</strong><br />
<a href="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224538.jpg"><img class="alignnone size-medium wp-image-514" title="20090108_224538" src="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224538-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224623.jpg"><img class="alignnone size-medium wp-image-513" title="20090108_224623" src="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224623-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224558.jpg"><img class="alignnone size-medium wp-image-515" title="20090108_224558" src="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224558-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224610.jpg"><img class="alignnone size-medium wp-image-516" title="20090108_224610" src="http://blog.dawnofthegeeks.com/wp-content/uploads/2009/01/20090108_224610-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><strong>Installation:</strong><br />
Download and unzip to any folder you create. You will need to have a Wii Sensor Bar on top of your monitor. I recommend purchasing a <a href="http://www.amazon.com/Wii-Wireless-Sensor-Bar-nintendo/dp/B000LFJNG6/ref=pd_bbs_sr_1?ie=UTF8&amp;s=videogames&amp;qid=1231480856&amp;sr=8-1">wireless Wii Sensor Bar</a> so you don&#8217;t have to fiddle with your Wii game system if you have one. If you don&#8217;t have one already you will also need a <a href="http://www.amazon.com/Wii-Remote-Controller-nintendo/dp/B000IMWK2G/ref=sr_1_1?ie=UTF8&amp;s=videogames&amp;qid=1231480924&amp;sr=1-1">Wii Remote</a>. Make sure your sensor bar and Wii Remote (also known as a Wiimote) are turned on.</p>
<p><a href="http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx">How to Connect Your Wiimote to your PC</a></p>
<p>To allow your computer to use the Wiimote you will need a <a href="http://www.walmart.com/catalog/product.do?product_id=10760292">bluetooth adapter</a>. To connect the Wiimote to your computer open up your bluetooth device manager. Hold down the 1 button and the 2 button on your Wiimote and then use the bluetooth device manager look for bluetooth devices. Click next to continue through the device manager. If you are asked to enter a pin or code to connect click &#8220;skip.&#8221; You may be asked which service to use from the Wiimote. Select the keyboard/mouse/HID service if prompted (you should only see one service available).</p>
<p>It seems complicated but once you get it working it&#8217;s easy to do again.</p>
<p>Make sure your Wii Sensor bar is turned on and double click on ElmosWorld.exe. If the game reports an error and fails to load your Wiimote is not connected.</p>
<p>Press the home button to quit a mini game and go back to the main title screen. All games simply require that you move the Wiimote to complete the tasks: Feed Dorothy, Catch Soccer Balls or Collect Letters.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dawnofthegeeks.com/2009/01/08/elmos-world-the-video-game/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
