<?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>Feet Have Been</title>
	<atom:link href="http://wheremy.feethavebeen.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://wheremy.feethavebeen.com</link>
	<description>Sometimes, you just go where your feet take you</description>
	<lastBuildDate>Mon, 01 Mar 2010 16:09:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Old Spice steps up the game</title>
		<link>http://wheremy.feethavebeen.com/2010/03/old-spice-steps-up-the-game/</link>
		<comments>http://wheremy.feethavebeen.com/2010/03/old-spice-steps-up-the-game/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 16:09:28 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=379</guid>
		<description><![CDATA[When was the last time you&#8217;ve seen a commercial? Probably about a week if you watch tv. Most times you either jump to a different channel or if you TIVO, you just skip them. Of course, there isn&#8217;t anything WRONG with that, at least from our point of view. Our TV Shows (however strange and [...]]]></description>
			<content:encoded><![CDATA[<p>When was the last time you&#8217;ve seen a commercial? Probably about a week if you watch tv. Most times you either jump to a different channel or if you TIVO, you just skip them. Of course, there isn&#8217;t anything WRONG with that, at least from our point of view. Our TV Shows (however strange and drab) can be considered works of art, simply because they are. Someone has a vision for the show and they set about assembling all the pieces so that they (hopefully) fit together and portray the directors/writers vision. That&#8217;s why we love shows. They follow a story line, they allow us to connect to the characters because they mirror us as hyperboles.</p>
<p>But then again, they do have a minimum of 30 minutes to do so. Commercials &#8211; they don&#8217;t get the same treatment. Marketers and Advertising agencies have a maximum of 30 seconds to wow us, pull us in and convince us we need something. The only thing commercials have is that you can see them every 15 minutes.</p>
<p>So we can see, commercials clearly have a hard time doing what they&#8217;re supposed to do. But they make it even harder on themselves by sticking to the standard flow of commericals. For example, any commercial for hair-care products for women have the same formula</p>
<ol>
<li>Girl with not shiny hair</li>
<li>Girl with non shiny hair uses *INSERT PRODUCT*</li>
<li>Girl with non shiny hair now has shiny hair which she ties into a knot (why?)</li>
<li>Girl flips her hair over her shoulder, smiles at the camera and the commercial ends.</li>
</ol>
<p>This pattern has been presented so many times to us that we don&#8217;t need to see the whole thing anymore. At any of the steps we can quickly identify the type of commercial. Of course, it&#8217;s not just womens commercials that follow this. Think of beer commercials aimed at men</p>
<ol>
<li>Girls</li>
<li>Girls with less clothes</li>
<li>Party with girls with less clothes</li>
<li>Average Joe</li>
</ol>
<p>They&#8217;re all the same, every commercial will follow the pattern of another commercial done before it.</p>
<p>There are of course a few who try and separate themselves, but most times they fall flat. Some notable ones of course, include Pepsi&#8217;s commercial featuring Jimmy Fallon and Parker Posey&#8217;s dancing through the street.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/P37WgPmkOuM&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/P37WgPmkOuM&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>And now, out of the blue, Old Spice throws its hat into the ring. Creative agency Wieden and Ross (widen and Ross)  have created what I think is one of the best (if not THE best) commercials on TV. Not only do I not mind watching it, but I actually Youtube it because it&#8217;s great. It&#8217;s nonsensical in an awesome way. Just.. just watch.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/owGykVbfgUE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/owGykVbfgUE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2010/03/old-spice-steps-up-the-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blagging about the iPad</title>
		<link>http://wheremy.feethavebeen.com/2010/02/blagging-about-the-ipad/</link>
		<comments>http://wheremy.feethavebeen.com/2010/02/blagging-about-the-ipad/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 06:07:10 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=365</guid>
		<description><![CDATA[At the request of a friend I decided to put up my pre-hands-on review of the iPad. I thought about getting it, but then I figured a magnifying glass and an iPod would be cheaper. But then I realized, I&#8217;m not a fan of iPods, so I did the next best thing. Look for reasons [...]]]></description>
			<content:encoded><![CDATA[<p>At the request of a friend I decided to put up my pre-hands-on review of the iPad. I thought about getting it, but then I figured a magnifying glass and an iPod would be cheaper. But then I realized, I&#8217;m not a fan of iPods, so I did the next best thing. Look for reasons not to like it. And boy were there a ton.</p>
<p><strong>What&#8217;s in a name</strong></p>
<p>Everything. Bill had it wrong. When you meet someone, you ask for their name. In your mind, it will forever be their name. When you see someone with similar characteristics you will say &#8220;Hey, thats like [NAME]&#8221; or &#8220;Hey, that isn&#8217;t what [NAME] would do at all&#8221;. When you first hear about a new product, they call it by name. When you talk to your friends about that great new feature of ____, you need to use it&#8217;s name. Names are about building associations, so why does it seem like your naming convention for your big &#8220;game-changing&#8221; product follows a Munroe <a href="http://xkcd.com/148/">comic</a> about mispronouncing words? Not to mention the fact that images of various feminine products swim through my head whenever I hear or see someone talking about it.</p>
<div id="attachment_366" class="wp-caption aligncenter" style="width: 510px"><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/iPad.png"><img class="size-full wp-image-366" title="iPad" src="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/iPad.png" alt="If I can't see your hands when you're using your iPad, stay away" width="500" height="500" /></a><p class="wp-caption-text">If I can&#39;t see your hands when you&#39;re using your iPad, stay away</p></div>
<p>There, now you&#8217;ll forever be scarred by the iPad. The funny thing is, I didn&#8217;t even think about this particular definition of the iPad. I saw the Munroe jokes about blagging. A friend pointed this out and now it&#8217;s the only thing I can think of.</p>
<p><strong>Features<br />
</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<div id="attachment_367" class="wp-caption alignright" style="width: 321px"><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/ipadFeature.png"><img class="size-full wp-image-367 " title="ipadFeature" src="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/ipadFeature.png" alt="So you can enjoy your Home Screen, because it's a feature." width="311" height="406" /></a><p class="wp-caption-text">I heard you like Home Screens, so we put Home Screens in your Home Screens.</p></div>
<p>The iPad actually really shines in this department. As much as I rail on Apple, I always say I can hand it to them when they do something good. The iPad runs Safari no problems, has a mail app, can play videos (obviously not HD but not even laptops can do that for a decent price) and it can Youtube (since.. I guess that&#8217;s different from videos). It also &#8220;iPods&#8221;..which I&#8217;m guessing is some sort of fancied up classic iPod interface, or dumbed down iTunes interface. It has a notes app for jotting down quick tidbits of thought (such as &#8220;Why the hell did I buy this?&#8221;), a calendar (for such appointments as &#8220;throw iPod at mailman @ 8:30am&#8221;, a contact app and my personal favourite the Home Screen! That&#8217;s right, apple took what I loved about the <a href="http://www.apple.com/ca/ipad/features/">home screens</a> (namely that they exist) and put it front and center on the iPad!</p>
<p>Now, let me just cross off the ones on that list that I can&#8217;t run on my Blackberry and what you&#8217;re left with is a cornucopia of&#8230; wait. You&#8217;re left with..iPod and Home Screens.</p>
<p>iPod was sort of a given, considering it&#8217;s your iPad, but the Home Screens were something no one expected Apple to flaunt.</p>
<p>In Apples&#8217; defence they are touting the iPad as a happy medium between phone and laptop. You get all the portability of a laptop, with all the features of a phone. And Home Screens. You get Home Screens.</p>
<p>However, for all their pluses, Apple gets a few (more) negative points as well.  You can only run two of these apps at any time. And it has to be the Mail app and another app. That&#8217;s it. You don&#8217;t get to listen to music while watching a how-to video about how to set up the Mail app properly.</p>
<p>It also shits on the face of standards (it&#8217;s Apple, did you expect any different?) You&#8217;ll find no USB port here for hooking your iPad up to your desktop. You&#8217;re stuck with a &#8220;30-pin dock connector&#8221;. Of course there isn&#8217;t a webcam on it, but I can&#8217;t really complain about that. My laptop doesn&#8217;t have a webcam. And it does have to make concessions to fit that multi-touch screen into it&#8217;s very thin packaging. It doesn&#8217;t have any expandable memory slots and it&#8217;s LED-backlit which is just geek talk for &#8220;good luck using it outdoors&#8221;.</p>
<div id="attachment_368" class="wp-caption aligncenter" style="width: 394px"><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/4b62f5bcb949b.jpg"><img class="size-full wp-image-368 " title="4b62f5bcb949b" src="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/4b62f5bcb949b.jpg" alt="Oh how we have evolved" width="384" height="256" /></a><p class="wp-caption-text">Oh how we have evolved</p></div>
<p><strong><br />
The Apps!</strong></p>
<p>This is where Apple will REALLY be making its money. It pretty much has the final say in whether or not your app makes it to the public and that can be a good thing. After all how many booby apps can one person purchase right? Since this is where Apple really shines they really pulled out all the stops on development. Not only did they make it so that you can use the old iPod/iPhone apps on your iPad, you can scale it up to full screen and they run even better because of the great new hard-ware! Too bad, you can still only run mail and one other app.</p>
<p>In all seriousness however, I will commend Apple on this. Good job developing the API for the iPhone/iPod/iPad line. It was a genius move on their part and hopefully they will continue to ride on its success!</p>
<div id="attachment_369" class="wp-caption aligncenter" style="width: 432px"><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/ipadboobs.png"><img class="size-full wp-image-369" title="ipadboobs" src="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/ipadboobs.png" alt="" width="422" height="337" /></a><p class="wp-caption-text">The official iPad ad campaign</p></div>
<p><strong><br />
The Verdict</strong></p>
<p>The price is win. At 499$ it puts it right at that &#8220;I need a new laptop but I&#8217;m just going to be using it for work&#8221; price point that most people seem to be at. As well, the fact that it advertises itself as portable means that users are definitely going to attempt to lug it around leading to increases in iPad theft rates and thus generating news about the iPad.</p>
<p>Apart from that though, it&#8217;s a fail. It touts it self as cheap and easy to use but that puts it in a niche that you and I don&#8217;t occupy. The iPad isn&#8217;t for you the blog reader, or me the blog writer. Or to anyone who knows how to work a computer. You know who it IS for? Old people. Because they can&#8217;t see, so the bigger iPhone interface makes it easier on the eyes. And that have terrible motor control so poking at icons on the great Home Screen is easier than navigating a mouse.</p>
<div id="attachment_370" class="wp-caption aligncenter" style="width: 330px"><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/cheapipad.png"><img class="size-full wp-image-370 " title="cheapipad" src="http://wheremy.feethavebeen.com/wp-content/uploads/2010/02/cheapipad.png" alt="" width="320" height="400" /></a><p class="wp-caption-text">I left my Home Screen in my other sweater...</p></div>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2010/02/blagging-about-the-ipad/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Aggro Detection with Javascript</title>
		<link>http://wheremy.feethavebeen.com/2009/12/aggro-detection-with-javascript/</link>
		<comments>http://wheremy.feethavebeen.com/2009/12/aggro-detection-with-javascript/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 14:00:35 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=358</guid>
		<description><![CDATA[So you want to make some games? Sure it sounds easy, but until you dive into it you&#8217;ll never notice all the little things that go into the backend of it that make or break your game. While this isn&#8217;t as big a deal in current browser-based games (they&#8217;re either muds, flash or static maps) [...]]]></description>
			<content:encoded><![CDATA[<p>So you want to make some games? Sure it sounds easy, but until you dive into it you&#8217;ll never notice all the little things that go into the backend of it that make or break your game. While this isn&#8217;t as big a deal in current browser-based games (they&#8217;re either muds, flash or static maps) things are changing in the browser. Everything is getting faster, and things like javascript based animation is actually feasible! So what is an aspiring game developer to do except buckle in and start programming their games?</p>
<p>Once you begin researching you&#8217;ll notice that while a lot of browser-based text games take into account Collision detection, they seem to be missing Aggro detection. Aggro stands for either aggravation or aggression and is essentially a way to tell if a monster will attack you or not.. As you&#8217;ve probably noticed some monsters tend to rush at you from across the map, while others seem to completely ignore you until you attack them. This is Aggro.</p>
<p>One of the easiest ways to detect aggro is to simply add a variable to your monsters to signify &#8220;sight&#8221;. This sight variable will dictate how far away you need to be before a monster will attack you. Set this to 100 to have a monster rush at you from across your map or set it to 0 so that it will never attack unless you attack first.</p>
<p>Detection aggro is as simple as following two formula&#8217;s. The first will be to figure out the distance between you and the monster and the second will simply be a quick check to see if you fall within the monsters aggro radius. To start off, you need to grab the <a href="http://www.jquery.com">jQuery</a> javascript framework. While you CAN do this from scratch, jQuery lets you do it a lot easier, plus you can probably add a bit more jazz to your current game if you&#8217;re not already using it. If you&#8217;re unsure of how jQuery works, take a look at our quick <a href="http://wheremy.feethavebeen.com/2009/11/jquery-primer-an-intro-to-client-side-functionality/">intro to jQuery</a> or just check out the <a href="http://docs.jquery.com/Main_Page">jQuery documentation</a>. Now just cobble together a quick webpage and include the jQuery library. I&#8217;m using the minified version 1.3.2 of jQuery, so if you&#8217;re not using the same one, make sure you replace that line.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;Collision Detection&lt;/title&gt;
	&lt;style type=&quot;text/css&quot;&gt;
	table#grid{
		border-style: solid; 
		border-width: 0px 1px 1px 0px; 
		border-color: #CCC; 
		padding: 0px;
	}
	table#grid tr th{
		border-style: solid; 
		border-width: 1px 0px 0px 1px; 
		border-color: #CCC; 
		text-align: center; 
		color: #333; 
		font-size: 0.7em; 
		font-weight: bold; 
		font-family: &quot;Arial&quot;;
		background-color: #EDEDED;
	}
	table#grid tr th.run{
		width: 12px;
	}
	table#grid tr td{
		width: 50px; 
		height: 50px; 
		border-style: solid; 
		border-width: 1px 0px 0px 1px; 
		border-color: #CCC; 
		text-align: center; 
		color: #E0E0E0; 
		font-size: 0.7em; 
		font-weight: normal; 
		font-family: &quot;Arial&quot;;
	}
	table#grid tr td:hover{
		color: #333;
		background-color: #F3F3F3;	
	}
	.player{
		background-color: #333; 
	}
	.monsterA{
		color: #333; 
		background-color: #AA0000;
	}
	div#debug{
		border-style: solid; 
		border-color: #333; 
		border-width: 1px; 
		float: right; 
		border-color: #EDEDED;
		text-align: left; 
		color: #333; 
		font-size: 0.9em; 
		font-weight: normal; 
		font-family: &quot;Arial&quot;;
		width: 300px; 
		padding: 10px;
	}
	.monsterN{
		background-color: #00AA00;
	}
	&lt;/style&gt;
	&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&nbsp;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>You&#8217;ll notice a bunch of CSS in there, but you can ignore that. It&#8217;s pretty straight forward and really it&#8217;s just meant to pretty things up a little. Now we&#8217;re going to add a quick grid so that you can get an easy visual representation of where you are and where your monsters are and if they will aggro or not. You can copy and paste the following line a few times, and change the y coordinate (x,y) to match which row you&#8217;re on.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;tr&gt;
	&lt;td&gt;0,1&lt;/td&gt;&lt;td&gt;1,1&lt;/td&gt;&lt;td&gt;2,1&lt;/td&gt;&lt;td&gt;3,1&lt;/td&gt;&lt;td&gt;4,1&lt;/td&gt;&lt;td&gt;5,1&lt;/td&gt;&lt;td&gt;6,1&lt;/td&gt;&lt;td&gt;7,1&lt;/td&gt;&lt;td&gt;8,1&lt;/td&gt;&lt;td&gt;9,1&lt;/td&gt;
&lt;/tr&gt;</pre></div></div>

<p>Finally, I&#8217;ve just added a &#8220;debug&#8221; section, so you can get a textual representation of what&#8217;s going on. It&#8217;s just a div placed above the grid.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div id=&quot;debug&quot;&gt;
	&lt;b&gt;Debug&lt;/b&gt;&lt;br&gt;&lt;br&gt;
&lt;/div&gt;</pre></div></div>

<p><strong>The Code</strong><br />
Now for the code that will give us a visual representation of our player and our monsters. First off we are going to initiate a few variables that we will be using throughout our script. They&#8217;re pretty self explanatory.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> playerPlaced <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> 
<span style="color: #003366; font-weight: bold;">var</span> monster <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 
<span style="color: #003366; font-weight: bold;">var</span> player <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Now we&#8217;re going to set it up so that when we click a square it will check if our player is already placed or not. If he is NOT placed, then we are going to place him and update our &#8220;debug&#8221; section.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#grid tr td'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> distance<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div 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: #339933;">!</span>playerPlaced<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> 
	$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'@'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'player'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	playerPlaced <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span> 
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Player: '</span><span style="color: #339933;">+</span>player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;br&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Notice that we&#8217;ve set player['sight'] to 0. Why? Simply because your player doesn&#8217;t have an aggro radius. He may or may not attack at your discretion, so it&#8217;s irrelevant. A monster however, will ALWAYS attack if you get within its aggro radius (assuming no other modifiers).</p>
<p>The next bit will just place our monsters if there is already a player on the field. When we do, however, we are going to call some functions that will take care of calculating distance and checking if the monster will aggro. We&#8217;ll go over those first, since they&#8217;re more complicated.</p>
<p><strong>Distance</strong><br />
To calculate the distance of two points we are simply going to take the x,y coordinates of both our monster and player and perform some math on them. The formula that we will be using is actually the distance formula between two points (and you wondered when you would ever use it&#8230;) and something that&#8217;s been drilled into us in every math class. The formula itself is a basically sqrt(sq(x1-x2)+sq(y1-y2)) so translating that to our game code it will look more like</p>
<p>sqrt(sq(player[x]-monster[x])+sq(player[y]-monster[y]))</p>
<p>The squaring and square rooting would take us a lot more work, if JavaScript didn&#8217;t already have those built in! Our actual distance formula in JavaScript (after being placed in a function) will look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> getDistance<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span>to<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	distance <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">sqrt</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>from<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-</span>to<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>from<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-</span>to<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	<span style="color: #000066; font-weight: bold;">return</span> distance<span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Intersection</strong><br />
Basically intersection in our scenario will take a look at the player and see if he falls within the aggro radius of the monster. It&#8217;s a very simple check that just goes if (distance &lt; aggroRad) then it will aggro.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> willAggro<span style="color: #009900;">&#40;</span>aggro<span style="color: #339933;">,</span>distance<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>distance <span style="color: #339933;">&gt;</span> aggro<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> 
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Monster Insertion</strong><br />
Finally, we&#8217;re going to do our check to see if a monster will aggro a player or not depending on its distance to the player.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> 
$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'X'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
distance <span style="color: #339933;">=</span> getDistance<span style="color: #009900;">&#40;</span>player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>willAggro<span style="color: #009900;">&#40;</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>distance<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'monsterA'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'monsterN'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;b&gt;Monster:&lt;/b&gt; '</span><span style="color: #339933;">+</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">' &lt;b&gt;Distance:&lt;/b&gt; '</span><span style="color: #339933;">+</span>distance<span style="color: #339933;">+</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">' &lt;b&gt;Aggro:&lt;/b&gt; '</span><span style="color: #339933;">+</span>willAggro<span style="color: #009900;">&#40;</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>distance<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;br&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>And that&#8217;s all there is to it. If you run this page and take a look, you&#8217;ll notice that clicking a grid will place your player and clicking anywhere else will cause the monsters to appear in either green (if too far away to aggro) or red (if it will aggro). This is also noted in the debug section!</p>
<p>Here is our completed javascript section</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> playerPlaced <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> 
	<span style="color: #003366; font-weight: bold;">var</span> monster <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 
	<span style="color: #003366; font-weight: bold;">var</span> player <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#grid tr td'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> distance<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>playerPlaced<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'@'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'player'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			playerPlaced <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Player: '</span><span style="color: #339933;">+</span>player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;br&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'X'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			distance <span style="color: #339933;">=</span> getDistance<span style="color: #009900;">&#40;</span>player<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>willAggro<span style="color: #009900;">&#40;</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>distance<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'monsterA'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'monsterN'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;b&gt;Monster:&lt;/b&gt; '</span><span style="color: #339933;">+</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'loc'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">' &lt;b&gt;Distance:&lt;/b&gt; '</span><span style="color: #339933;">+</span>distance<span style="color: #339933;">+</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#debug'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">' &lt;b&gt;Aggro:&lt;/b&gt; '</span><span style="color: #339933;">+</span>willAggro<span style="color: #009900;">&#40;</span>monster<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'sight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>distance<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;br&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> getDistance<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span>to<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	distance <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">sqrt</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>from<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-</span>to<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>from<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-</span>to<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	<span style="color: #000066; font-weight: bold;">return</span> distance<span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span>	
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> willAggro<span style="color: #009900;">&#40;</span>aggro<span style="color: #339933;">,</span>distance<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>distance <span style="color: #339933;">&gt;</span> aggro<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> 
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This is a very simple way to check aggro and the reason I placed it in its own function was incase you needed to modify it in any way (for example if a monster was under 10 levels its aggro would be 0 always). <strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/12/aggro-detection-with-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ChromeOS &#8211; Revolution or Bust!</title>
		<link>http://wheremy.feethavebeen.com/2009/11/chromeos-revolution-or-bust/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/chromeos-revolution-or-bust/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 14:00:41 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[chromeOS]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=354</guid>
		<description><![CDATA[Everyone seems to be going a little over board with the newly announced Chrome OS. Don&#8217;t get me wrong, I love all new shiny things &#8211; I&#8217;m a shiny-new-thing-lover, but people are not only blowing this out of proportion, they&#8217;re not even talking about the right things. Let&#8217;s break it down shall we?
What IS Chrome [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone seems to be going a little over board with the newly announced Chrome OS. Don&#8217;t get me wrong, I love all new shiny things &#8211; I&#8217;m a shiny-new-thing-lover, but people are not only blowing this out of proportion, they&#8217;re not even talking about the right things. Let&#8217;s break it down shall we?</p>
<p><strong>What IS Chrome OS?<br />
</strong>Simply put, Chrome OS is Google&#8217;s take on the PC. They essentially stripped out the actual operating system and you&#8217;re running a slightly glorified browser. Why slightly? Well, because they&#8217;re essentially using Google Chrome with a few added tweaks. Want to know how it will run? Just pop open Google Chrome and hit the maximize button. Sure there will be a few UI tweaks and a couple of additions here and there, but that&#8217;s essentially what you are looking at.</p>
<p><strong>What&#8217;s the big deal then?<br />
</strong>The big deal here is two-fold. First off, it&#8217;s by Google! For die hard Googlers (me and damn near everyone else -.-) nothing Google can do is wrong! And even if they put out something questionable, they either fix it, or kill it and explain why. Google is also huge on the internet. Their applications either enjoy huge successes, or bomb and are killed quickly. Therefore, people come to expect a certain level of awesome from Google, and they expect that by Google officially calling Chrome OS it&#8217;s own project that they will get awesome. Secondly they used the word &#8220;cloud&#8221; multiple times, and right now that word is a game changer.</p>
<p><strong>I&#8217;m confused.<br />
</strong>Don&#8217;t worry, you&#8217;re not alone, a lot of tech bloggers seem to think that Google tipping its toe into the PC market will result in a revolution. Some people even think that Microsoft should watch out. They&#8217;re wrong. Google is trying something different, sure, but it won&#8217;t have much of an impact on people who aren&#8217;t tech savvy. Let&#8217;s examine this idea a bit more, with the use of some average customers.</p>
<p><strong>Customer 1 &#8211; Just want it to work</strong><br />
I worked for a while as a sales associate at a fairly large computer store. Customers would come in daily looking for a computer that they could use just for checking their email, browsing the internet and listening to some music. They didn&#8217;t do anything fancy, and were therefore not looking for anything overly expensive. Sadly, Chrome OS only satisfies 2.5 of their results, and even then, it clobbers them into something they&#8217;re not quite comfortable with. Web based email is something that is finally catching on to the main stream. It&#8217;s the newer generation that are really making strides with the cloud. Older <strong>generations</strong> are more comfortable with Outlook Express. That isn&#8217;t to say that won&#8217;t get used to a web-based client. It will just take some time. It took me a few months to move my parents away from Outlook Express and to Gmail. My father handled the move fairly well, but my mother found it a hassle. In fact, to this day she will delete and email rather than archive it, even if there is a chance she will use it later. The internet is what Chrome will excel at. But &#8220;browsing the internet&#8221; usually translates into 25-30 pages that a user will visit frequently. The last bit is where users will really get confused. Since ChromeOS doesn&#8217;t have a native file-system, there isn&#8217;t any way to store your files on it. That means that all your music on your old PC will stay on your old PC. If you have an mp3 player you can definitely hook it up and look at your music, but you can&#8217;t play it. Of course, if you have an iPod you&#8217;re just out of luck. iPod&#8217;s will require iTunes which requires a hard-drive. If you want to listen to music now, you&#8217;re stuck going with online services like Lala, Pandora and Last.fm. Of course, Pandora doesn&#8217;t work in most places, and that extensive library that they&#8217;ve build up won&#8217;t work.</p>
<p><strong>Customer 2 &#8211; The Gamer/Hardware Guru<br />
</strong>They know exactly what they are looking for and won&#8217;t waste your time. They&#8217;ll have a list of things they want and they&#8217;ll just run through your store and pick them up, stopping you only if they can&#8217;t find something. They&#8217;re veterans. They already know ChromeOS won&#8217;t let them play games or download movies and music or even let them tinker about with some music editing software that they need and they won&#8217;t waste time thinking about it.</p>
<p><strong>Customer 3 &#8211; The self-proclaimed guru<br />
</strong>These customers generally have some idea of what they&#8217;re looking for, but have no clue about specifics. They think of themselves as better than the average user and tend to have idea&#8217;s about systems that they&#8217;ve just picked up from others. They don&#8217;t know if ChromeOS is right for them, but once you mention that it doesn&#8217;t have a hard-drive they&#8217;ll be a little skeptic.</p>
<p><strong>Customer 4 &#8211; Curious<br />
</strong>This is the only customer that will pick up ChromeOS. They have an idea of what ChromeOS is about, and they know that it won&#8217;t replace a desktop or laptop, but still, they&#8217;re curious about it. These customers will come in looking specifically for ChromeOS and if you don&#8217;t have it, they&#8217;ll move right on to the next place.</p>
<p>And that is why ChromeOS isn&#8217;t going to go up against any of the big OSes. It&#8217;s not designed to. At its core, ChromeOS is meant for a very niche set of users. People who like Google&#8217;s products and are looking for a hassle free way to access them. It&#8217;s not meant to replace your current machine, it&#8217;s a supplement, something that Google themselves has tried to make clear. If you&#8217;re interested in reading up some more on Googles ChromeOS, I&#8217;ve included a couple links to some articles that I think address the situation rather well.</p>
<p><a href="http://gizmodo.com/5408712/what-google-needs-for-the-chrome-os-to-succeed">http://gizmodo.com/5408712/what-google-needs-for-the-chrome-os-to-succeed</a><br />
<a href="http://arstechnica.com/open-source/news/2009/11/chromeos-announcement.ars/">http://arstechnica.com/open-source/news/2009/11/chromeos-announcement.ars/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/chromeos-revolution-or-bust/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Feature Friday &#8211; Google Wave Preview &#8211; Rarst.net</title>
		<link>http://wheremy.feethavebeen.com/2009/11/feature-friday-google-wave-preview-rarst-net/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/feature-friday-google-wave-preview-rarst-net/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 14:00:24 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tech Tip]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=349</guid>
		<description><![CDATA[I&#8217;ve been really apprehensive about posting my own review of Google Wave simply because I don&#8217;t see how the general public will be affected by it yet. Long term, I&#8217;m hoping Google Wave will become the method of choice for collaboration, but short term, it&#8217;s still too early to tell. Some people are gushing over [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been really apprehensive about posting my own review of Google Wave simply because I don&#8217;t see how the general public will be affected by it yet. Long term, I&#8217;m hoping Google Wave will become the method of choice for collaboration, but short term, it&#8217;s still too early to tell. <a href="http://lifehacker.com/search/wave/">Some people</a> are gushing over it, while others are a little wary. <a href="http://www.rarst.net/web/google-wave-preview/">This post is a great introduction to wave</a> and an easy way to see just what the hype is about. As always, I have reserved a couple invites to wave for FHB readers.</p>
<blockquote><p>By now there is enough stuff on Wave posted to confuse anybody, so for for those who have access to preview version or not either – let’s carefully <strong>go over established facts and look at what is defined for sure</strong>.</p></blockquote>
<p><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2009/11/wave.png"><img class="aligncenter size-full wp-image-308" title="wave" src="http://wheremy.feethavebeen.com/wp-content/uploads/2009/11/wave.png" alt="wave" width="732" height="481" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/feature-friday-google-wave-preview-rarst-net/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adding New Ram? Check the Numbers</title>
		<link>http://wheremy.feethavebeen.com/2009/11/adding-new-ram-check-the-numbers/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/adding-new-ram-check-the-numbers/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 14:00:49 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Tech Tip]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=347</guid>
		<description><![CDATA[RAM stands for Random-Access-Memory and it is what your computer uses to perform most operations. A lot of programs will &#8220;live in memory&#8221; that means while the program is running it will be utilizing your RAM. The more programs you have running concurrently, generally the more RAM you will need.
However, picking the right ram is [...]]]></description>
			<content:encoded><![CDATA[<p>RAM stands for Random-Access-Memory and it is what your computer uses to perform most operations. A lot of programs will &#8220;live in memory&#8221; that means while the program is running it will be utilizing your RAM. The more programs you have running concurrently, generally the more RAM you will need.</p>
<p>However, picking the right ram is a hassle. The first step is pop open your computer and find the RAM you have, making sure that the power is off and the machine is completely unplugged from external power sources. You can also flip the power switch on the back of the power supply unit to ensure that the power really is off.</p>
<p>Your RAM will most likely be DDR2. This is currently the most common RAM out there. Prices for it are relatively cheap and you can find any speed you want (more on speeds further down) pretty much anywhere. If you have DDR1 RAM you&#8217;re a bit out of luck. DDR1 is quite old now and upgrading or replacing faulty RAM sticks is a bit of a hassle. A lot of stores won&#8217;t carry it since it doesn&#8217;t sell very easily and if they do carry it you&#8217;ll find it is often double the price of the DDR2 sticks. Sadly you can&#8217;t just swap different types of RAM so if you have a certain type of DDR1 RAM you either have to find that exact RAM elsewhere or just upgrade your system.</p>
<p>Generally when you call or show up at a computer store looking for RAM the sales person will just ask you what speed your RAM is. This tends to be a confusing question for people who don&#8217;t really open up their computer. The easiest way around this is to just remove the RAM from your machine and take it in to the store, but if you want to know what the sales person is actually checking, it&#8217;s below.</p>
<table style="height: 188px;" border="0" width="308">
<tbody>
<tr>
<th>Type</th>
<th>Module</th>
<th>Speed</th>
</tr>
<tr>
<td>DDR1</td>
<td>PC-2100</td>
<td>266 mHz</td>
</tr>
<tr>
<td>DDR1</td>
<td>PC-2700</td>
<td>333 mHz</td>
</tr>
<tr>
<td>DDR1</td>
<td>PC-3200</td>
<td>400 mHz</td>
</tr>
<tr>
<td>DDR2</td>
<td>PC2-3200</td>
<td>400 mHz</td>
</tr>
<tr>
<td>DDR2</td>
<td>PC2-4200</td>
<td>533 mHz</td>
</tr>
<tr>
<td>DDR2</td>
<td>PC2-5300</td>
<td>667 mHz</td>
</tr>
<tr>
<td>DDR2</td>
<td>PC2-6400</td>
<td>800 mHz</td>
</tr>
<tr>
<td>DDR2</td>
<td>PC2-8500</td>
<td>1066 mHz</td>
</tr>
</tbody>
</table>
<p>Just remember that DDR1 and DDR2 RAM looks physically different, so there is no way to switch the two. Also, your motherboard will dictate the maximum speed of RAM that you can use, so be sure to consult your motherboard manual before upgrading or changing your RAM.</p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/adding-new-ram-check-the-numbers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>32bit vs 64bit</title>
		<link>http://wheremy.feethavebeen.com/2009/11/32bit-vs-64bit/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/32bit-vs-64bit/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:00:07 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Tech Tip]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=345</guid>
		<description><![CDATA[Inspired by a friend who isn&#8217;t as big of a computer geek as I am, I decided to do a post explaining the differences between 32bit and 64bit when it comes to operating systems.
The 32 and 64 bit numbers actually refer to the maximum accessible address space that the OS and CPU can handle. In [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by a friend who isn&#8217;t as big of a computer geek as I am, I decided to do a post explaining the differences between 32bit and 64bit when it comes to operating systems.</p>
<p>The 32 and 64 bit numbers actually refer to the maximum accessible address space that the OS and CPU can handle. In laymen terms, with a 32bit processor/Operating System you are limited to about 4294967296 bytes of space (2<sup>32</sup>). If you convert that to Gigabytes you&#8217;re left with about 4gb (in reality that number is bit less). So in a 32 bit system the maximum amount of memory that your computer can successfully utilize is about 3.75GB. This means that even if you have 8GB of RAM in your machine, it will only be able to utilize 3.75GB. This is definitely something to keep in mind when you are picking up your next computer or looking to upgrade your current machine.</p>
<p>In a 64bit world (CPU/OS) you&#8217;re looking at significantly more address space. Since our number is actually growing exponentially instead of linearly (this isn&#8217;t really a math blog, but exponents grow exponentially whereas basic math modifiers (+ &#8211; / *) all grow linearly in repetitively applied) we are given about 17179869184GB of space. That is not a typo, it actually is 17 Billion Gigabytes. This means that your computer will read the full 8GB of RAM that you have in your machine.</p>
<p>The key when upgrading is to ensure that both your OS, CPU and Motherboard support 64bit processing. That isn&#8217;t really a problem now, but if you are dealing with a slightly older computer, it helps to look.</p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/32bit-vs-64bit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Feature Friday &#8211; David Walsh &#8211; When Webmasters Attack</title>
		<link>http://wheremy.feethavebeen.com/2009/11/feature-friday-david-walsh-when-webmasters-attack/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/feature-friday-david-walsh-when-webmasters-attack/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 14:00:43 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=334</guid>
		<description><![CDATA[David Walsh Blog is something that I&#8217;ve been following for some time now. While he predominantly focuses on Mootools related functionality (I&#8217;m jQuery) he does have some good posts about design and development on all aspects of the web. Definitely a website worth adding to your Feed list.
This particular post is something that I feel [...]]]></description>
			<content:encoded><![CDATA[<p>David Walsh Blog is something that I&#8217;ve been following for some time now. While he predominantly focuses on Mootools related functionality (I&#8217;m jQuery) he does have some good posts about design and development on all aspects of the web. Definitely a website worth adding to your Feed list.</p>
<p>This particular post is something that I feel puts in perspective the problems of crowd-sourcing your way to success.</p>
<p><a href="http://davidwalsh.name/when-webmasters-attack">http://davidwalsh.name/when-webmasters-attack</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/feature-friday-david-walsh-when-webmasters-attack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Profiling with Fiddler</title>
		<link>http://wheremy.feethavebeen.com/2009/11/website-profiling-with-fiddler/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/website-profiling-with-fiddler/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 14:00:59 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Tech Tip]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=340</guid>
		<description><![CDATA[Recently I came upon the task of measuring performance in a corporate website. Generally when profiling I just pop open Google Chrome and run the Web Developer Tools that come pre-installed. It has a built in profiler that works and as a bonus looks really pretty. However, since this is a corporate setting, IE6 is [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I came upon the task of measuring performance in a corporate website. Generally when profiling I just pop open Google Chrome and run the Web Developer Tools that come pre-installed. It has a built in profiler that works and as a bonus looks really pretty. However, since this is a corporate setting, IE6 is used predominantly and therefore all my tests would have to be done with IE6.</p>
<p>After some research into the best profiling tools that work cross-browser I stumbled across a forum post talking about <a href="http://www.fiddler2.com/fiddler2/">Fiddler</a>. Fiddler is a complete network profiler, allowing to to monitor all network traffic. But it also gives you the ability to limit it to just browser traffic, which was idea in this case. Simply starting up Fiddler and hitting F12 started the capture process (alternatively, File -&gt; Capture Traffic) and reloading the page captured all traffic. It lists all the items that were loaded on the page and lets you select any number or combination of them to get the total load time for those elements. This feature alone is great because it gives you an overview of all Javascript, or all image files. It even breaks down the distinction between .gif, .jpg and.png files so can see how they rate individually.</p>
<p>As an added bonus, Fiddler even generates charts to compare loading times based on the elements that you selected. This is a great way to provide a quick overview to prospective clients on where their website is slowing down and gives you a leg up in figuring out how to improve this. As a freelance consultant, tools like this really make things a lot easier and provide you with at-a-glance data freeing up your time to look at solutions instead of focusing on the problems.</p>
<p>One thing to note, I thought the Fiddler website looked a little shady, but it is completely legitimate and under active development.</p>
<p style="text-align: center;"><a href="http://wheremy.feethavebeen.com/wp-content/uploads/2009/11/fiddler2.PNG"><img class="aligncenter size-full wp-image-343" title="fiddler2" src="http://wheremy.feethavebeen.com/wp-content/uploads/2009/11/fiddler2.PNG" alt="fiddler2" width="746" height="482" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/website-profiling-with-fiddler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Apologies</title>
		<link>http://wheremy.feethavebeen.com/2009/11/my-apologies/</link>
		<comments>http://wheremy.feethavebeen.com/2009/11/my-apologies/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 05:27:53 +0000</pubDate>
		<dc:creator>xangelo</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://wheremy.feethavebeen.com/?p=338</guid>
		<description><![CDATA[My apologies in the delay in posting, I have been working rather hard on something and it is consuming a lot of time. I know todays post was almost 24h&#8217;s late, but I&#8217;m hoping tomorrow I will be able to get a few different ideas I&#8217;ve had written up.
Thanks for reading FHB!
]]></description>
			<content:encoded><![CDATA[<p>My apologies in the delay in posting, I have been working rather hard on something and it is consuming a lot of time. I know todays post was almost 24h&#8217;s late, but I&#8217;m hoping tomorrow I will be able to get a few different ideas I&#8217;ve had written up.</p>
<p>Thanks for reading FHB!</p>
]]></content:encoded>
			<wfw:commentRss>http://wheremy.feethavebeen.com/2009/11/my-apologies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
