<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Schoonology</title>
	
	<link>http://schoonology.com</link>
	<description>Studies of the Schoon</description>
	<lastBuildDate>Fri, 14 May 2010 04:36:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/schoonology" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="schoonology" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>A Proper Migration: Conditionally Apply a 301 Redirect with WordPress</title>
		<link>http://schoonology.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/</link>
		<comments>http://schoonology.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/#comments</comments>
		<pubDate>Mon, 10 May 2010 22:44:59 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Inanities]]></category>
		<category><![CDATA[301 redirect]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[site migration]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://schoonology.com/?p=212</guid>
		<description><![CDATA[The Problem: Too many URLs In the interest of coming back to writing on the side, I consolidated my static web page and blog into one site, schoonology.com. For the curious, this amounts to routing 3 second-level domains (one having two third-level domains) to this WordPress install. For your entertainment, feel free to click the [...]]]></description>
			<content:encoded><![CDATA[<h2>The Problem: Too many URLs</h2>
<p>In the interest of coming back to writing on the side, I consolidated my static web page and blog into one site, <a title="Schoonology" href="http://schoonology.com">schoonology.com</a>. For the curious, this amounts to routing 3 <a href="http://en.wikipedia.org/wiki/Second-level_domain">second-level domains</a> (one having two third-level domains) to this WordPress install. For your entertainment, feel free to click the following links. They should all route back to this article:</p>
<ul>
<li>Migrated URL: <a href="http://schoonology.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/">http://schoonology.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/</a></li>
<li>Old URL: <a href="http://blog.theschoon.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/">http://blog.theschoon.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/</a></li>
<li>Really Old URL: <a href="http://theschoon.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/">http://theschoon.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/</a></li>
<li>Just In Case URL: <a href="http://michaelschoonmaker.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/">http://michaelschoonmaker.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/</a></li>
</ul>
<h2>The Solution: The 301 redirect</h2>
<p><em>Head on over to <a href="http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx">the Wikipedia article</a> for more information, but there&#8217;s an HTTP status code for my exact problem: 301.</em></p>
<p>Almost everyone knows what a 404 means. It&#8217;s the HTTP status code for &#8220;that document does not exist&#8221;. If I left the other 3 domains hanging, that&#8217;s exactly where those links would lead: nowhere. So the first step was to go into my host&#8217;s settings and tell it to point all four to the WordPress install. Poof! No more 404&#8242;s.</p>
<p>Now, though, you&#8217;re left with four URLs that all point to the same place. To both normal users and (<em>gasp!</em>) search engines, it looks like there are four <em>different</em> websites that have the <em>same exact content</em>. Enter the 301. What it means is &#8220;this document has moved.&#8221; So both your browser and Google understand that they&#8217;ve gone to an old address, and can be re-routed accordingly. Ta da!</p>
<h2>The Juicy Bit: How it&#8217;s done</h2>
<p>I was delighted to discover with a bit of legwork on Google that WordPress comes with a redirect method build in. Not that I couldn&#8217;t just <a href="http://php.net/manual/en/function.header.php">modify the headers myself in PHP</a>; the wordpress method produced cleaner code. What I had discovered was <a href="http://codex.wordpress.org/Function_Reference/wp_redirect">wp_redirect</a>.</p>
<p>After a few iterations, I wound up with the following code, added to my functions.php file:</p>
<pre>function conditional_redirect()
{
	if ($_SERVER["SERVER_NAME"] != 'schoonology.com')
	{
		wp_redirect('http://schoonology.com' . $_SERVER["REQUEST_URI"], 301);
	}
}
add_action('get_header', conditional_redirect);</pre>
<p>First we define a function to do the redirect itself. Remember folks, <a href="http://c2.com/ppr/wiki/WikiPagesAboutRefactoring/ComposedMethod.html">composed methods</a> and <a href="http://c2.com/ppr/wiki/WikiPagesAboutRefactoring/ExtractMethod.html">extracted methods</a> are your friends, even when they&#8217;re not required for a function reference, as they are in this case. Inside, the conditional checks to see if we&#8217;re already where we want to be. If we are, then there&#8217;s no reason to redirect someone to it, is there? Otherwise, perform the redirect.</p>
<p><em>Be sure to specify the status code!</em> WordPress defaults to 302, which means we&#8217;ve &#8220;temporarily&#8221; moved the document. This isn&#8217;t a temporary move, this is the document&#8217;s <em>permanent </em>new home. Finally, we call our method. Voila &#8211; All the links do what we want.</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/a-proper-migration-conditionally-apply-a-301-redirect-with-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Far Cry 2: Epic Monotony Edition</title>
		<link>http://schoonology.com/far-cry-2-epic-monotony-edition/</link>
		<comments>http://schoonology.com/far-cry-2-epic-monotony-edition/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:31:05 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[far cry 2]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=152</guid>
		<description><![CDATA[Far Cry 2, like an MMO, is undeniably monotonous. Go here, talk to this person, go there, destroy that or kill this person, go back, &#8230;, untiringly monotonous. However, when given over to the player&#8217;s imagination, the experience becomes flecked with moments that are undeniably epic, and completely the player&#8217;s. The developer&#8217;s involvement was little [...]]]></description>
			<content:encoded><![CDATA[<p>Far Cry 2, like an MMO, is undeniably monotonous. Go here, talk to this person, go there, destroy that or kill this person, go back, &#8230;, untiringly monotonous. However, when given over to the player&#8217;s imagination, the experience becomes flecked with moments that are undeniably epic, and completely the player&#8217;s. The developer&#8217;s involvement was little more than making what happened <em>possible</em>, even without being planned or predicted.</p>
<p>It&#8217;ll be quite something, really, if an MMO can find a way to effectively achieve this. Much stands in the way of it, not the least of which is fairness amongst the players, but I think it&#8217;ll be a great achievement in the genre. Something to look forward to.</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/far-cry-2-epic-monotony-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strawberry-Stuffed</title>
		<link>http://schoonology.com/strawberry-stuffed/</link>
		<comments>http://schoonology.com/strawberry-stuffed/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 19:21:57 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Food & Drink]]></category>
		<category><![CDATA[bread]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[kitchinspirations]]></category>
		<category><![CDATA[recipes]]></category>
		<category><![CDATA[strawberries]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=150</guid>
		<description><![CDATA[Even as this blog goes untouched for so long, I got invited to be a part of Kitchinspirations, a food challenge blog hosted by Traci of NouveauDish. June&#8217;s challenge was &#8220;Strawberry Shortcake&#8221;, and I decided to get a little creative with the definition. Ladies and gentlemen, I present Strawberry-Stuffed French Toast.]]></description>
			<content:encoded><![CDATA[<p>Even as this blog goes untouched for so long, I got invited to be a part of <a href="http://kitchinspirations.blogspot.com">Kitchinspirations</a>, a food challenge blog hosted by Traci of <a href="http://NouveauDish.blogspot.com">NouveauDish</a>. June&#8217;s challenge was <a href="http://kitchinspirations.blogspot.com/2009/05/june-challenge.html">&#8220;Strawberry Shortcake&#8221;</a>, and I decided to get a little creative with the definition.</p>
<p>Ladies and gentlemen, I present <a href="http://kitchinspirations.blogspot.com/2009/06/strawberry-stuffed.html">Strawberry-Stuffed French Toast</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/strawberry-stuffed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Second Person Perspective in Games</title>
		<link>http://schoonology.com/second-person-perspective-in-games/</link>
		<comments>http://schoonology.com/second-person-perspective-in-games/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 05:43:11 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=146</guid>
		<description><![CDATA[The story goes something like this: Becca (who would later become my fiancée), Cliff (a fellow musician and good friend), and myself are relaxing at the student-run café of my alma mater, Bucknell. I&#8217;m just getting interested in video games as a profession, and regardless of that &#8211; video games became conversation topics quite frequently. [...]]]></description>
			<content:encoded><![CDATA[<p>The story goes something like this:</p>
<p>Becca (who would later become my fiancée), Cliff (a fellow musician and good friend), and myself are relaxing at the student-run café of my alma mater, Bucknell. I&#8217;m just getting interested in video games as a profession, and regardless of that &#8211; video games became conversation topics quite frequently. In this case, however, it was not a specific game for once. What came up was a question: &#8220;So, if games use first person and third person, what about second person?&#8221; It&#8217;s a glorious question, to which we composed a glorious answer.</p>
<p>Our logic was as follows: In first person literature, you&#8217;re telling the story with &#8220;I&#8221;, &#8220;me&#8221;,  &#8220;we&#8221;, and &#8220;us&#8221;. With a game in the first person perspective, you tell the story the same way &#8211; through the eyes of the person telling it. In third person literature, you&#8217;re telling the story with &#8220;he&#8221;, &#8220;she&#8221;, &#8220;it&#8221;, &#8220;they&#8221;, &#8220;them&#8221;, etc. In a game with a third person perspective, you&#8217;re now telling the story with a certain disconnect from the main character. You&#8217;re telling the story <em>about </em>them, not <em>as </em>them. Cue the red-headed stepchild of the trio, second person. If we were to write a second person novel, we would write out the whole book as a conversation, using &#8220;you&#8221; and &#8220;your&#8221;. How, then, do you represent this conversationalist in game form? <em>Through the eyes of the other person.</em></p>
<p>We&#8217;d solved it. To us, <em>that&#8217;s</em> what a second person game <em>must</em> be. However, we still didn&#8217;t have a concrete feeling of what that would play like. I went into game designer mode, and penned out a scenario as premise: two robots, trashed in a heap, trying to escape. They reassemble one another, but get the cameras switched. Escape becomes more urgent, and so the two decide to deal with the situation as is rather than try and swap heads. So the game begins. I called it <em>Scrapped!</em> and built a prototype straight away:</p>
<div id="attachment_147" class="wp-caption aligncenter" style="width: 430px"><img class="size-full wp-image-147 " title="Second Person Demo" src="http://blog.theschoon.com/wp-content/uploads/2009/02/second-person.gif" alt="A demo of Scrapped!'s camera" width="420" height="326" /><p class="wp-caption-text">A demo of Scrapped!&#39;s camera</p></div>
<p class="clear">
<p>NOTE: While working on this, my curiosity bit and I search the internet for previous attempts at &#8220;second person&#8221; as a game perspective. All I found at the time is what I&#8217;d rather call &#8220;parrot cam&#8221;, which is an over-the-shoulder view. Thinking back, I searched again (trying to find the article I wrote last time, to no avail), and stumbled upon the idea that &#8220;second person&#8221; meant <em>you</em>, the player, were the main character. I&#8217;m not sure that plays to the conversational nature of the second person &#8220;you&#8221;, but I see where they&#8217;re coming from.</p>
<p>Finally, the demo you see above was complete. I built in networking, tank controls, and two working perspectives: one for each player, even though you drove the other tank. Grabbed some <span style="text-decoration: line-through;">victims</span> friends, tried it out&#8230;&#8230; it was dreadfully difficult to see where you were going, you really couldn&#8217;t position yourselves in the right way to be helpful to one another, and more often than not you just ran into each other.</p>
<p>In retrospect, it was hard to navigate because there&#8217;s no sense of depth in a black vacuum. Granted &#8211; what you see above was the copy I found lying around on my hard drive when I went looking. There&#8217;s a more complete version somewhere, I just couldn&#8217;t find it. Also, it was hard to see because of the height of the camera with respect to the ground plane, and the running into one another problem could be fixed with some fudging of the collision volumes. Either way, the point stands: this was an amazing thought experiment and awesome practice, but just did not pan out in the end. Love the story, though.</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/second-person-perspective-in-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video Game Engineering is “Real Engineering”</title>
		<link>http://schoonology.com/video-game-engineering-is-real-engineering/</link>
		<comments>http://schoonology.com/video-game-engineering-is-real-engineering/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 03:40:37 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Inanities]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=25</guid>
		<description><![CDATA[There was an interesting comment made at work the other day by one of our superstar engineers (i.e. not me), who claimed that what we&#8217;re doing is &#8220;real engineering&#8221;. It caught me a little off guard, to be totally honest. You see, I always thought of all the other disciplines in that light. That is, [...]]]></description>
			<content:encoded><![CDATA[<p>There was an interesting comment made at work the other day by one of our superstar engineers (i.e. not me), who claimed that what we&#8217;re doing is &#8220;real engineering&#8221;. It caught me a little off guard, to be totally honest.</p>
<p>You see, I always thought of all the other disciplines in that light. That is, those who studied Mechanical, Chemical, Electrical, and other Engineering degrees in college were the Engineers — I was just that guy who made video games.</p>
<p>Now that I&#8217;m out in the real world, I know very few of those ladies and gentlemen who are engineering in the way that Mike meant — treading new and unfamiliar ground, having your ideas and solutions tried and tested, and being required to support your solutions the &#8220;old fashioned way&#8221;, etc. We may not be doing anything life-or-death, but when society decides we need actual solutions to our problems, I think I&#8217;ve got a good idea where they&#8217;ll be found.</p>
<p>I wonder if this means I can retroactively refer to myself as an Engineer to all my old collegemates&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/video-game-engineering-is-real-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wine In My Blood</title>
		<link>http://schoonology.com/wine-in-my-blood/</link>
		<comments>http://schoonology.com/wine-in-my-blood/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 04:31:45 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Food & Drink]]></category>
		<category><![CDATA[Inanities]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=16</guid>
		<description><![CDATA[So I&#8217;ve been reading History In A Glass lately, and it&#8217;s got me thinking even more about wine. Now, however, I remember another reason behind my recent obsession with my new hobby of wine tasting: it&#8217;s in my blood. Frank Schoonmaker was a wine merchant, fellow Taster, and wine critic. Through the Schoonmaker Family Association, [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been reading <a href="http://www.amazon.com/History-Glass-Writing-Gourmet-Library/dp/0812971949/ref=pd_bbs_sr_1/185-3928551-7328661?ie=UTF8&amp;s=books&amp;qid=1227151946&amp;sr=8-1"><em>History In A Glass</em></a> lately, and it&#8217;s got me thinking <em>even more</em> about wine. Now, however, I remember another reason behind my recent obsession with my new hobby of wine tasting: it&#8217;s in my blood.</p>
<p><a href="http://www.gourmet.com/search/query?keyword=Frank+Schoonmaker&amp;">Frank Schoonmaker</a> was a wine merchant, fellow Taster, and wine critic. Through the Schoonmaker Family Association, I&#8217;m trying to track down a more specific relation between myself and Frank, but for casual sake I refer to him as my &#8220;great-uncle&#8221;. He looked a lot like my great-grandfather did, and wouldn&#8217;t be the only vet in the family, and either way you look at it — he put a lot of wine in my blood.</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/wine-in-my-blood/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart People = Teachers</title>
		<link>http://schoonology.com/smart-people-teachers/</link>
		<comments>http://schoonology.com/smart-people-teachers/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 04:43:38 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Inanities]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=3</guid>
		<description><![CDATA[They say &#8220;there&#8217;s no such thing as a stupid question.&#8221; I think it goes beyond that. I think there&#8217;s no such thing as someone who&#8217;s too smart to answer. I think it&#8217;s the responsibility of the &#8220;smart&#8221;, &#8220;experienced&#8221;, and &#8220;educated&#8221; to mentor and teach those less fortunate (or merely younger) than themselves. This can manifest [...]]]></description>
			<content:encoded><![CDATA[<p>They say &#8220;there&#8217;s no such thing as a stupid question.&#8221; I think it goes beyond that. I think there&#8217;s no such thing as someone who&#8217;s too smart to answer.<br />
I think it&#8217;s the responsibility of the &#8220;smart&#8221;, &#8220;experienced&#8221;, and &#8220;educated&#8221; to mentor and teach those less fortunate (or merely younger) than themselves. This can manifest itself in many ways.</p>
<p>For one, mentoring is an ideal method of learning for most people, as it eliminates a lot of the fumbling around that a newbie to a particular topic would do on their own, and yet (with a good mentor) maintains the proper environment with which an individual can learn &#8220;on their own&#8221; &#8211; by doing.</p>
<p>I don&#8217;t mean to dig up academic theory, but I do find it interesting. Fortunately, as I&#8217;m the newbie in a lot of cases, I&#8217;m surrounded by people who &#8211; as smart as they are &#8211; are willing to answer any questions I sling at them. Keep in mind that it does help to have well-constructed questions &#8211; and I certainly try to make each one count.</p>
<p>You never know when they&#8217;ll stop answering&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/smart-people-teachers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inspiration vs. Teaching</title>
		<link>http://schoonology.com/inspiration-vs-teaching/</link>
		<comments>http://schoonology.com/inspiration-vs-teaching/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 13:16:36 +0000</pubDate>
		<dc:creator>Schoon</dc:creator>
				<category><![CDATA[Inanities]]></category>
		<category><![CDATA[Bucknell]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[jazz]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[story]]></category>
		<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://blog.theschoon.com/?p=8</guid>
		<description><![CDATA[The question on the table is that of &#8220;Which is better to do for someone — inspire them or teach them?&#8221; At first thought, I would say teach. To inspire them may make them want something, but when you take the time to teach someone, you make them capable of that something. The reason this [...]]]></description>
			<content:encoded><![CDATA[<p>The question on the table is that of &#8220;Which is better to do for someone — inspire them or teach them?&#8221;</p>
<p>At first thought, I would say teach. To inspire them may make them want something, but when you take the time to teach someone, you make them capable of that something. The reason this discussion is even extant is that I&#8217;ve been singing more recently, but singing only swing songs. I remember back to when I was <em>taught</em> by a man named <a href="http://www.jimbalagurchik.com/">Jim Balagurchik</a>. If you look at his site, a lot of those pictures are from our shared alma mater: Bucknell University.</p>
<p>Jim took the time to teach me how to use my voice to express myself in the fine world of jazz and swing. However, just as Jim&#8217;s the reason for the argument, he&#8217;s also the reason my first instinct is wrong. To teach is to make possible, true. But to inspire is to make <em>probable</em> that the student will act on what you taught. Through his performances, Jim inspired me as a lot of swing greats have inspired me — to keep on singing…</p>
]]></content:encoded>
			<wfw:commentRss>http://schoonology.com/inspiration-vs-teaching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
