<?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>Craig Pfau</title>
	<atom:link href="http://craigpfau.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://craigpfau.com</link>
	<description></description>
	<lastBuildDate>Fri, 18 May 2012 04:38:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Day Seven &#8211; Razor and Essential Tools</title>
		<link>http://craigpfau.com/2012/05/day-seven-razor-and-essential-tools/</link>
		<comments>http://craigpfau.com/2012/05/day-seven-razor-and-essential-tools/#comments</comments>
		<pubDate>Thu, 17 May 2012 04:14:37 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[365]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=954</guid>
		<description><![CDATA[Today I was able to read Pro ASP.NET MVC 3 Framework earlier than I have the last few nights.  I finished off Chapter 5 which was a quick lesson on the Razor view engine. Then I started on Chapter 6 which explains some of the author&#8217;s &#8220;essential tools&#8221; for [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was able to read <a href="http://www.amazon.ca/Pro-ASP-NET-MVC-Framework-Third/dp/1430234040/" target="_blank">Pro ASP.NET MVC 3 Framework</a> earlier than I have the last few nights.  I finished off Chapter 5 which was a quick lesson on the Razor view engine.</p>
<p>Then I started on Chapter 6 which explains some of the author&#8217;s &#8220;essential tools&#8221; for MVC development.  The tools explained were <em>dependency injection container</em> (<a href="http://www.ninject.org/" target="_blank">Ninject</a>), <em>unit test framework</em> (Visual Studio 2010&#8242;s built in tools) and <em>mocking tools</em> (<a href="http://code.google.com/p/moq/" target="_blank">Moq</a>).</p>
<p>After reading the chapter, I find myself wondering what the distinction between the three are and why its important to use them.  I saw what each of the tools did and I can see their value to some degree, but I&#8217;m one of those guys that needs to know why something is important before it is important to my own workflow.</p>
<p>Further reading for myself:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Dependency_injection" target="_blank">Dependency Injection</a></li>
<li><a href="http://en.wikipedia.org/wiki/Unit_testing" target="_blank">Unit Testing</a></li>
<li><a href="http://en.wikipedia.org/wiki/Mock_object" target="_blank">Mock Objects</a></li>
</ul>
<p />
<div>I will have to find some time to better understand these, but at the same time I feel like they are the <em>icing</em> and I came into this looking how to make a <em>cake</em>.  So for the time being I&#8217;m going to focus on moving forward to Chapter 7 where the book finally starts to create a project over the next 3 chapters.</div>
<div>
<p /></div>
<div>Also woo hoo! Seven days down.</div>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/05/day-seven-razor-and-essential-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day Six &#8211; Automated Testing and Language Tools</title>
		<link>http://craigpfau.com/2012/05/day-six-automated-testing-and-language-tools/</link>
		<comments>http://craigpfau.com/2012/05/day-six-automated-testing-and-language-tools/#comments</comments>
		<pubDate>Wed, 16 May 2012 03:56:05 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[365]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=959</guid>
		<description><![CDATA[Finished a chapter on automated testing.  Both unit testing and integration testing. My understanding is that unit testing allows the programmer to test individual classes in isolation.  Integration testing allows the programmer to test multiple components together (this can include the whole web application). This is important [...]]]></description>
			<content:encoded><![CDATA[<p>Finished a chapter on automated testing.  Both <a href="http://en.wikipedia.org/wiki/Unit_testing" target="_blank">unit testing</a> and <a href="http://en.wikipedia.org/wiki/Integration_testing" target="_blank">integration testing</a>.</p>
<p>My understanding is that unit testing allows the programmer to test individual classes in isolation.  Integration testing allows the programmer to test multiple components together (this can include the whole web application).</p>
<p style="padding-left: 30px;">This is important information and I plan on using it in the future, however to get a grasp on ASP.NET and MVC quickly I plan on foregoing automated testing while I go through this books later examples (the author&#8217;s kindly make it optional).  This decision was made so that I can focus on learning the core language first.</p>
<p>I also read through the majority of a chapter explaining <em>essential language tools</em>.  This included C# language features, Lambda expressions and LINQ.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb397687.aspx" target="_blank">Lambda expressions</a> have went onto my whiteboard list of stuff to look into and gauge as I go forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/05/day-six-automated-testing-and-language-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day Five &#8211; The MVC Pattern</title>
		<link>http://craigpfau.com/2012/05/day-five-the-mvc-pattern/</link>
		<comments>http://craigpfau.com/2012/05/day-five-the-mvc-pattern/#comments</comments>
		<pubDate>Tue, 15 May 2012 03:35:00 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[365]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=958</guid>
		<description><![CDATA[The MVC (Model-View-Controller) pattern was the focus of my reading today.  This pattern was one of the reasons I chose this book as my goals were to learn MVC and ASP.NET I may be over simplifying things but the pattern breaks down to: Model &#8211; The data or [...]]]></description>
			<content:encoded><![CDATA[<p>The<strong> MVC</strong> (<a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">Model-View-Controller)</a> pattern was the focus of my reading today.  This pattern was one of the reasons I chose this book as my goals were to learn MVC <em>and</em> ASP.NET</p>
<p>I may be over simplifying things but the pattern breaks down to:</p>
<ul>
<li>Model &#8211; The data or database</li>
<li>View &#8211; Renders the HTML and C# the user sees</li>
<li>Controller &#8211; The interface between the other two.</li>
</ul>
<p>The book also explains other possible patterns: Smart UI, Model-View, and Three-Tier Architecture.<br />
As well as MVC variants: <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter" target="_blank">Model-View-Presenter</a> and <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel" target="_blank">Model-View-View-Model</a></p>
<p>I can&#8217;t wait to put this into action.</p>
<p>&#8211;</p>
<p>I also started a whiteboard of terms that I felt were important and that I was fuzzy on.  Terms I could come back to later and continuously check my understanding of them as I gain more knowledge.  These include:</p>
<ul>
<li>Aggregates &#8211; these seem really neat.  The ability to do group wide validation and cascading deletions are things I&#8217;m looking forward to learning more about.</li>
<li>Repositories</li>
<li>Dependency Injection</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/05/day-five-the-mvc-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day Three &#8211; First ASP.NET MVC Program</title>
		<link>http://craigpfau.com/2012/05/day-three-first-asp-net-mvc-program/</link>
		<comments>http://craigpfau.com/2012/05/day-three-first-asp-net-mvc-program/#comments</comments>
		<pubDate>Fri, 11 May 2012 00:03:18 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[365]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=948</guid>
		<description><![CDATA[Today I came home, turned the computer on and gave Web Platform Installer one more go. Success! Third time was definitely the charm. Once I had the IDE set up I started on Chapter 2.  The chapter focused on having you make a full party invitation utility [...]]]></description>
			<content:encoded><![CDATA[<p>Today I came home, turned the computer on and gave <a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a> one more go.</p>
<p><a href="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-8-14-37-PM.png" rel="lightbox[948]"><img class="alignnone  wp-image-949" title="5-9-2012 8-14-37 PM" src="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-8-14-37-PM.png" alt="" width="491" height="340" /></a></p>
<p>Success! Third time was definitely the charm.</p>
<p>Once I had the IDE set up I started on Chapter 2.  The chapter focused on having you make a full party invitation utility (index, RSVP form, validation, submission to email).  It favored functionality over understanding.  Brushing over complex concepts while reminding the reader that the details were to come in later chapters, but for now to just get a taste of what a project contains.</p>
<p>The chapter went over:</p>
<ul>
<li>How to add a controller</li>
<li>Overview of Routes</li>
<li>Rendering views</li>
<li>Adding a data model</li>
<li>Creating forms</li>
<li>Get/Post</li>
<li>Model Binding</li>
<li>Validation</li>
</ul>
<p>I&#8217;ve had very basic experience with Ruby and felt that Razor view engine mixed with MVC felt a little similar.  I could be wrong.  It has been awhile since I played with Ruby.</p>
<p>Here are some screenshots of what I created.</p>
<p><a href="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-10-42-10-PM.png" rel="lightbox[948]"><img class="alignnone size-full wp-image-951" title="5-9-2012 10-42-10 PM" src="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-10-42-10-PM.png" alt="" width="498" height="325" /></a></p>
<p><a href="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-10-42-00-PM.png" rel="lightbox[948]"><img class="alignnone size-full wp-image-950" title="5-9-2012 10-42-00 PM" src="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-10-42-00-PM.png" alt="" width="498" height="325" /></a></p>
<p><a href="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-10-44-07-PM.png" rel="lightbox[948]"><img class="alignnone size-full wp-image-952" title="5-9-2012 10-44-07 PM" src="http://craigpfau.com/wp-content/uploads/2012/05/5-9-2012-10-44-07-PM.png" alt="" width="473" height="254" /></a></p>
<p>Slow and steady.</p>
<p>&nbsp;</p>
<p><strong>Questions</strong></p>
<p>I had a few questions while reading through this chapter that I hope to better understand in the coming weeks.</p>
<p>What is C# Lambda expressions?<br />
What makes a strongly typed view different?</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/05/day-three-first-asp-net-mvc-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day Two &#8211; Installing Requirements</title>
		<link>http://craigpfau.com/2012/05/day-two-installing-requirements/</link>
		<comments>http://craigpfau.com/2012/05/day-two-installing-requirements/#comments</comments>
		<pubDate>Wed, 09 May 2012 18:27:33 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[365]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=945</guid>
		<description><![CDATA[Last night I went through Chapter 2 of the book.  This chapter focused on setting up your development environment.  I already had Visual Studio 2010 Ultimate and Microsoft Server 2008 installed.  What I was missing was ASP.NET MVC 3.0 and the Visual Studio 2010 SP1 updates.  I [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I went through Chapter 2 of the book.  This chapter focused on setting up your development environment.  I already had Visual Studio 2010 Ultimate and Microsoft Server 2008 installed.  What I was missing was ASP.NET MVC 3.0 and the Visual Studio 2010 SP1 updates.  I honestly thought it would be a quick update.  It wasn&#8217;t.</p>
<p><a href="http://craigpfau.com/wp-content/uploads/2012/05/5-8-2012-10-02-52-PM.png" rel="lightbox[945]"><img class="alignnone  wp-image-946" title="5-8-2012 10-02-52 PM" src="http://craigpfau.com/wp-content/uploads/2012/05/5-8-2012-10-02-52-PM.png" alt="" width="546" height="378" /></a></p>
<p>I spent most of the night looking at this.  Notice it says it is installing.  It was confused because it was doing a lot of nothing.  I restarted it and went to sleep.  Woke up and only 12 of 16 installed successfully.  So overall not much accomplished.</p>
<p><strong>What I learned</strong></p>
<p>Web Platform Installer sucks a little.  It crashed on me three times last night, but its still a good utility when it works.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/05/day-two-installing-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Three Sixty Five</title>
		<link>http://craigpfau.com/2012/05/project-three-sixty-five/</link>
		<comments>http://craigpfau.com/2012/05/project-three-sixty-five/#comments</comments>
		<pubDate>Tue, 08 May 2012 20:12:15 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[365]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=941</guid>
		<description><![CDATA[Yesterday I was reading LifeHacker, as I have recently started to do, and came across this article: 366 Days, or How I Tricked Myself into Being Awesome It got me thinking about how I keep saying I want to become a better programmer but never actually do [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I was reading LifeHacker, as I have recently started to do, and came across this article: <a title="366 Days, or How I Tricked Myself into Being Awesome" href="http://lifehacker.com/5907717/366-days-or-how-i-tricked-myself-into-being-awesome" target="_blank">366 Days, or How I Tricked Myself into Being Awesome</a></p>
<p>It got me thinking about how I keep <em>saying </em>I want to become a better programmer but <em>never actually do it</em>. So I&#8217;m going to try to take the plunge and learn as much as I can for the next year.</p>
<p>I&#8217;ve started with a book that a friend recommended on ASP.NET MVC.<br />
<a href="http://www.amazon.ca/Pro-ASP-NET-MVC-Framework-Third/dp/1430234040/"><img class="alignnone  wp-image-942" title="aspnetmvc" src="http://craigpfau.com/wp-content/uploads/2012/05/aspnetmvc.png" alt="" width="581" height="107" /></a></p>
<p>Every day I will attempt to learn at least one new thing and post about it.  Thus turning my blog into a daily journal for the foreseeable future.</p>
<p><strong>Base Knowledge</strong></p>
<p>Last month I finished my <em>Bachelor of Science in Computing and Information Systems</em> through Athabasca University and Grande Prairie Regional College (collaborative).  During this time I took classes on Java, C++, C, Assembler, HTML, CSS, XML, JavaScript, Java Mobile, Java Server Pages, SQL, and even Game Maker Language.  University has given me a wide range of knowledge but it has failed to cement in me any confidence as a programmer.  I dabble in everything but I&#8217;m a master of nothing.  So today I begin an exercise in me.  Exercise has never been my strong suite but here we go&#8230;</p>
<p><strong>Day One</strong></p>
<p>Last night would have been day one (I think this is the format I&#8217;ll be taking, learn at night then post the following day).</p>
<p>I read Chapter 1 which described the history of Microsoft web frameworks which included CGI, Webforms and now MVC.  The book also spent some time on competing frameworks such as Ruby, Sinatra, Node.js and Rails.  It also didn&#8217;t hold back on attacks against Webforms.  I&#8217;ve never used Webforms so I cannot attest to their capabilities.</p>
<p>The rest of the chapter went over the pros for ASP.NET MVC.</p>
<ul>
<li>MVC architecture</li>
<li>Extensibility</li>
<li>Control over HTML and HTTP</li>
<li>Testability</li>
<li>Modern API</li>
<li>Open Source</li>
</ul>
<p>I&#8217;ll leave it there for day one and pick up tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/05/project-three-sixty-five/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PhoneGap iOS UIWebView and Safari.app Links</title>
		<link>http://craigpfau.com/2012/02/phonegap-ios-uiwebview-and-safari-app-links/</link>
		<comments>http://craigpfau.com/2012/02/phonegap-ios-uiwebview-and-safari-app-links/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 05:06:11 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=925</guid>
		<description><![CDATA[When creating a PhoneGap jQuery Mobile project you have two options for opening links: UIWebView This is PhoneGap&#8217;s in app browser The draw back for me was that there is no navigation in UIWebView. Thus no way to navigate back to the app The upside for me was [...]]]></description>
			<content:encoded><![CDATA[<p>When creating a PhoneGap jQuery Mobile project you have two options for opening links:</p>
<ul>
<li><strong>UIWebView </strong>This is PhoneGap&#8217;s in app browser
<ul>
<li>The draw back for me was that there is no navigation in UIWebView. Thus no way to navigate back to the app</li>
<li>The upside for me was that I could use iFrames (out of necessity not out of want) using UIWebView</li>
</ul>
</li>
<li><strong>Safari.app </strong>As you can guess, this is iOS&#8217;s default browser
<ul>
<li>Links open in Safari and load as expected</li>
</ul>
</li>
</ul>
<div>When I was creating my project I had a bunch of external links that I was happy sending off to Safari but I had a 3rd party iFrame for a chat feature that needed to function within the app.  To just enable UIWebView for the single URL I used this code [<em>projectFolder</em> &gt; Classes &gt; <em>AppName</em>Delegate.m]</div>
<div></div>
<div class="codecolorer-container javascript bootstrap" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>BOOL<span style="color: #009900;">&#41;</span> webView<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIWebView<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>theWebView shouldStartLoadWithRequest<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>NSURLRequest<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>request navigationType<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIWebViewNavigationType<span style="color: #009900;">&#41;</span>navigationType<br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; NSURL <span style="color: #339933;">*</span>url <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>request URL<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>url absoluteString<span style="color: #009900;">&#93;</span> rangeOfString<span style="color: #339933;">:@</span><span style="color: #3366CC;">&quot;URLToOpenInUIWebView.com&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">location</span> <span style="color: #339933;">!=</span> NSNotFound<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> YES<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#91;</span>self.<span style="color: #660066;">viewController</span> webView<span style="color: #339933;">:</span>theWebView shouldStartLoadWithRequest<span style="color: #339933;">:</span>request navigationType<span style="color: #339933;">:</span>navigationType<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>To enable external domains in PhoneGap you have to whitelist the URLs as of PhoneGap 1.0.<br />
To do this go to <em>projectFolder</em> &gt; Supporting Files &gt; PhoneGap.plist<br />
You should have a list of Key/Type/Values.  First check to see if ExternalHosts is one of the keys.  If it isn&#8217;t then right click the list and choose Add Row.  You&#8217;ll want it to look like ExternalHosts/Array/count (this is auto generated)<br />
Now that you have ExternalHosts you will want to add URLs to this array to whitelist.<br />
You can use the wildcard symbol * in this list.  So *.domainName.com would allow all subdomains.  There is nothing stopping you from using * or *.* to allow ALL URLs to be whitelisted.  I leave that to you.</p>
<p>I was using Xcode 4.2.1, OSX Lion 10.7.3, PhoneGap 1.4.1 and jQuery Mobile 1.0.1</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2012/02/phonegap-ios-uiwebview-and-safari-app-links/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Zombie Lane Gifting URLs Exploit</title>
		<link>http://craigpfau.com/2011/06/zombie-lane-gifting-urls-exploit/</link>
		<comments>http://craigpfau.com/2011/06/zombie-lane-gifting-urls-exploit/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 00:29:52 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=906</guid>
		<description><![CDATA[Zombie Lane (Facebook game) uses URLs to send in game items called Gifts. Therefore the game normally locks out specific items until the player has reached a specific character level. For instance a user should be level 30 before being able to send +7 energy to another [...]]]></description>
			<content:encoded><![CDATA[<p>Zombie Lane (Facebook game) uses URLs to send in game items called Gifts.</p>
<p>Therefore the game normally locks out specific items until the player has reached a specific character level.<br />
For instance a user should be level 30 before being able to send +7 energy to another user.  Using the URLs below allows you to circumvent this.</p>
<p>As of version 1.1.8 of the game this is still a security hole that has not been patched.</p>
<p>Originally I was pretty psyched to create an application that would allow other ZL players to easily do this as well.  The problem comes in the form of time.  Already wasted 3 hours making a solution specific to me (a single webpage with 32 ZL players that when I click on their 32&#215;32 pixel FB photo an individual page loads prompting 7 pop up windows to send all 7 items to that specific user).  So now I click on 32 images and some super crude Javascript window.open pop ups do the work for me.  Of course I had to tell my browser to allow pop ups and each browser has limits on the number of pop ups it will allow (Chrome allowed me to load 25 before it blocked further, Firefox 4 blocked after 20 and Internet Explorer 8 allowed me to open all 192 pages while almost freezing my 8GB RAM, 6 core computer).  I couldn&#8217;t find where to alter these limits.</p>
<p>If anyone is interested in making an app that would take advantage of these links would have to consider these points:</p>
<ol>
<li><strong>Facebook vanity / username URLs won&#8217;t work</strong><br />
&amp;recipient=some.name.that.you.chose won&#8217;t work.  So you&#8217;ll have to convert vanity names to UIDs.</li>
<li><strong>Possible TOS issues</strong><br />
I skimmed through both Facebook Developer TOS and Zombie Lane TOS and didn&#8217;t see anything that would be an issue.  After all these are using URLs that are publicly available.</li>
<li><strong>Pop Ups</strong><br />
To open the URLs you will need to use pop ups.  No one likes pop ups.  Every browser has pop up blockers enabled and it will be a hassle to have people unblock them.</li>
<li><strong>Storing User Facebook Friends</strong><br />
If you make it web based you are going to have to keep track of who people want to send to, otherwise they will have to enter this information every time.  So now you have to handle the privacy issue.  You can encode the data, but the average user is still going to be suspicious of your intent.</li>
<li><strong>Webbased vs Standalone</strong><br />
So PHP, Javascript, FBML, Ruby.  Now you need hosting or you have to have people trust a EXE.  Fun times.</li>
<li><strong>Digital Chocolate changes exploit in next version and you wasted a huge amount of time</strong><br />
THIS.</li>
</ol>
<p>So what do I suggest.  Just use the URLs for yourself for now.</p>
<p><a href="http://apps.facebook.com/zombielane/SendGift?gid=Shotgun&amp;request_type=GiftRequest&amp;recipient=580606262">Shotgun</a><br />
<a href="http://apps.facebook.com/zombielane/SendGift?gid=EnergyCola&amp;request_type=GiftRequest&amp;recipient=580606262">+3 Energy</a><br />
<a href="http://apps.facebook.com/zombielane/SendGift?gid=EnergyCola2&amp;request_type=GiftRequest&amp;recipient=580606262">+5 Energy</a><br />
<a href="http://apps.facebook.com/zombielane/SendGift?gid=EnergyCola3&amp;request_type=GiftRequest&amp;recipient=580606262">+7 Energy</a><br />
<a href="http://apps.facebook.com/zombielane/SendGift?gid=Blueprint&amp;request_type=GiftRequest&amp;recipient=580606262">Blueprint</a><br />
<a href="http://apps.facebook.com/zombielane/SendGift?gid=Grenade&amp;request_type=GiftRequest&amp;recipient=580606262">Grenade</a><br />
<a href="http://apps.facebook.com/zombielane/SendGift?gid=LandMine&amp;request_type=GiftRequest&amp;recipient=580606262">Land Mine</a></p>
<div id="_mcePaste"><strong>Shotgun</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=Shotgun&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div><strong>Energy +3</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=EnergyCola&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div><strong>Energy +5</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=EnergyCola2&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div><strong>Energy +7</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=EnergyCola3&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div><strong>Blueprint</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=Blueprint&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div><strong>Grenade</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=Grenade&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div><strong>Land Mine</strong></div>
<div>http://apps.facebook.com/zombielane/SendGift?gid=LandMine&amp;request_type=GiftRequest&amp;recipient=580606262</div>
<div>
How the links look.  Replace the &amp;recipient= at the end to the UID of your friend.</div>
<p>To find this I made this really quick.  Enter a vanity name and it will show you the user ID number.<br />
<script type="text/javascript">// <![CDATA[
    function convert() { 	  document.form.output.value = "graph.facebook.com/"+document.form.username.value +"?fields=id"; 	  window.location.href=('https://'+document.form.output.value); 	  }
// ]]&gt;</script></p>
<blockquote><form id="form" method="post">http://www.facebook.com/</p>
<input id="username" name="username" type="text" value="craig.g.pfau" />
<input id="Button" onclick="convert()" name="Button" type="button" value="Convert" />
<input name="output" type="hidden" /></form>
</blockquote>
<p>All that is left to do is to create a list of links that you can click on.  You&#8217;ll have to look into HTML or Javascript</p>
<p><strong>HTML Example</strong></p>
<p style="padding-left: 30px;">&lt;a href=&#8217;http://apps.facebook.com/zombielane/SendGift?gid=Shotgun&amp;request_type=GiftRequest&amp;recipient=580606262&#8242;&gt;Shotgun&lt;/a&gt;</p>
<p><strong>Javascript Pop Up Example</strong></p>
<p style="padding-left: 30px;">&lt;script language=&#8221;javascript&#8221;&gt;window.open(&#8216;http://apps.facebook.com/zombielane/SendGift?gid=Shotgun&amp;request_type=GiftRequest&amp;recipient=580606262&#8242;,&#8221;,&#8217;width=350,height=200&#8242;)&lt;/script&gt;</p>
<p style="padding-left: 30px;">
<p>Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2011/06/zombie-lane-gifting-urls-exploit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tax Return Spending</title>
		<link>http://craigpfau.com/2011/05/tax-return-spending/</link>
		<comments>http://craigpfau.com/2011/05/tax-return-spending/#comments</comments>
		<pubDate>Mon, 23 May 2011 16:54:35 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=897</guid>
		<description><![CDATA[Upgraded my computer a few weeks ago.  I had a Dual Core 2.2GHz, 4GB RAM with a Nvidia 8600 GTS graphics card.  My new computer is a AMD Phenom II X6 (6 cores), 8GB of RAM with a ATI Radeon HD 6670 1GB DDR5. I was also [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://craigpfau.com/wp-content/uploads/2011/05/desk.jpg" rel="lightbox[897]"><img class="size-full wp-image-898 alignnone" title="desk" src="http://craigpfau.com/wp-content/uploads/2011/05/desk.jpg" alt="" width="617" height="463" /></a></p>
<p>Upgraded my computer a few weeks ago.  I had a Dual Core 2.2GHz, 4GB RAM with a Nvidia 8600 GTS graphics card.  My new computer is a AMD Phenom II X6 (6 cores), 8GB of RAM with a ATI Radeon HD 6670 1GB DDR5.</p>
<p>I was also using an old wooden writing desk that my parents had bought when I was a teenager.  With my tax return I bought a new BENQ 20 inch LED LCD monitor (man they are thin) and a desk from Ikea.</p>
<p>All and all, I love my new work area.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2011/05/tax-return-spending/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordered Some Threadless Shirts</title>
		<link>http://craigpfau.com/2011/05/ordered-some-threadless-shirts/</link>
		<comments>http://craigpfau.com/2011/05/ordered-some-threadless-shirts/#comments</comments>
		<pubDate>Sat, 21 May 2011 03:55:34 +0000</pubDate>
		<dc:creator>Craig Pfau</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://craigpfau.com/?p=889</guid>
		<description><![CDATA[Today I purchased a few shirts from Threadless for $12 a piece.  I wouldn&#8217;t have even known about the sale if it wasn&#8217;t for a Facebook ad.  I find this interesting because it is the first time that an online ad has resulted in me purchasing something. [...]]]></description>
			<content:encoded><![CDATA[
<a rel='wp-prettyPhoto[gallery]' href='http://craigpfau.com/2011/05/ordered-some-threadless-shirts/cupid/' title='Cupid'><img width="150" height="150" src="http://craigpfau.com/wp-content/uploads/2011/05/Cupid-150x150.jpg" class="attachment-thumbnail" alt="Cupid" title="Cupid" /></a>
<a rel='wp-prettyPhoto[gallery]' href='http://craigpfau.com/2011/05/ordered-some-threadless-shirts/kitties/' title='Kitties'><img width="150" height="150" src="http://craigpfau.com/wp-content/uploads/2011/05/Kitties-150x150.jpg" class="attachment-thumbnail" alt="Kitties" title="Kitties" /></a>
<a rel='wp-prettyPhoto[gallery]' href='http://craigpfau.com/2011/05/ordered-some-threadless-shirts/narwhale/' title='Narwhale'><img width="150" height="150" src="http://craigpfau.com/wp-content/uploads/2011/05/Narwhale-150x150.jpg" class="attachment-thumbnail" alt="Narwhale" title="Narwhale" /></a>
<a rel='wp-prettyPhoto[gallery]' href='http://craigpfau.com/2011/05/ordered-some-threadless-shirts/squinjas/' title='Squinjas'><img width="150" height="150" src="http://craigpfau.com/wp-content/uploads/2011/05/Squinjas-150x150.jpg" class="attachment-thumbnail" alt="Squinjas" title="Squinjas" /></a>
<a rel='wp-prettyPhoto[gallery]' href='http://craigpfau.com/2011/05/ordered-some-threadless-shirts/stonejungle/' title='Stonejungle'><img width="150" height="150" src="http://craigpfau.com/wp-content/uploads/2011/05/Stonejungle-150x150.jpg" class="attachment-thumbnail" alt="Stonejungle" title="Stonejungle" /></a>
<a rel='wp-prettyPhoto[gallery]' href='http://craigpfau.com/2011/05/ordered-some-threadless-shirts/stopsmoking/' title='Stopsmoking'><img width="150" height="150" src="http://craigpfau.com/wp-content/uploads/2011/05/Stopsmoking-150x150.jpg" class="attachment-thumbnail" alt="Stopsmoking" title="Stopsmoking" /></a>

<p>Today I purchased a few shirts from Threadless for $12 a piece.  I wouldn&#8217;t have even known about the sale if it wasn&#8217;t for a Facebook ad.  I find this interesting because it is the first time that an online ad has resulted in me purchasing something.  I&#8217;m sure it won&#8217;t be the last, but I felt like sharing that online marketing does work, or at least it works on me apparently.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigpfau.com/2011/05/ordered-some-threadless-shirts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: craigpfau.com @ 2012-05-20 10:24:03 -->
