<?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>Overpass Experiences</title>
	<atom:link href="http://www.wroolie.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wroolie.co.uk</link>
	<description>The Eric Wroolie Blog</description>
	<lastBuildDate>Fri, 30 Mar 2012 08:52:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Mr. Fad</title>
		<link>http://www.wroolie.co.uk/2012/03/mr-fad/</link>
		<comments>http://www.wroolie.co.uk/2012/03/mr-fad/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 08:52:37 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=684</guid>
		<description><![CDATA[I realised ages ago that I’m susceptible to following fads. If something new comes along that looks interesting, I’ll give it a go.&#160; Why I haven’t joined a cult yet, I have no idea. A few years ago, I was gung-ho on vegetarianism.&#160; That lasted a few weeks. I started going to the gym regularly.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>I realised ages ago that I’m susceptible to following fads. If something new comes along that looks interesting, I’ll give it a go.&#160; Why I haven’t joined a cult yet, I have no idea.</p>
<p>A few years ago, I was gung-ho on vegetarianism.&#160; That lasted a few weeks.</p>
<p>I started going to the gym regularly.&#160; That lasted a few months.</p>
<p>I still meditate, but not as regularly as I did at the beginning.</p>
<p>When I read about node.js, I became a huge fan and learned all I could about it.&#160; But, that waned too.&#160; The bills are paid by Microsoft work.</p>
<p>My family are aware of my tendency for jump on bandwagons.&#160; So, when I say something like “I’m going on a low-carb diet” (my decision last night) because of something I’ve read, everyone rolls their eyes and puts up with me.&#160; </p>
<p>If you want to really annoy or embarrass me, just mention one of the things I haven&#8217;t followed through on.</p>
<p>For all my starts though, I’ve had some success.&#160; I’ve run marathons, started contracts in new technologies, and I still wake earlier than most people for self-development time.&#160; If something works, it works.&#160; If it doesn’t, I stop.&#160; </p>
<p>So, I’m silly in this way.&#160; I start new fads all the time.&#160; If I can keep from telling others about it, I will.&#160; But when I can’t get around my strange behaviour anymore (“I can’t eat that because I’m vegetarian now”), I’ll fess up.&#160; </p>
<p>I haven’t tried everything I’ve thought about. Like, for the longest time, I’ve wanted to try <a href="http://en.wikipedia.org/wiki/Polyphasic_sleep" target="_blank">polyphasic sleeping</a>, but it would disrupt family life too much.&#160; One day . . . </p>
<p>But, what is the alternative?&#160; What would I gain by being steadfast and set in my habits?&#160; Where would I be if I never experimented?&#160; When I adopt a language like “I’m going to try to . . . “ instead of “I’m going to . . . “, I have less likelihood of success, so there’s no sense in starting with a flimsy word like “try”.</p>
<p>So, when you hear me tell you I’m going to start a new habit, or become a new person, or whatever.&#160; Go ahead and roll your eyes.&#160; I understand.&#160; It may work out for me, or it may not.&#160; That’s for future me to decide.&#160; Present me just has to decide to try it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/03/mr-fad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Man, I hated PE!</title>
		<link>http://www.wroolie.co.uk/2012/03/man-i-hated-pe/</link>
		<comments>http://www.wroolie.co.uk/2012/03/man-i-hated-pe/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 05:34:59 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[Bumblings]]></category>
		<category><![CDATA[Growing Up]]></category>
		<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=676</guid>
		<description><![CDATA[When I was kid, the subject I hated most in school was PE.  Even in the seventh grade, it seemed like a barbarous hour in the middle of the school day where they forced us to put on sweaty clothes and compete in team sports.  Some kids were so competitive that it made the whole [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 259px"><a href="http://www.flickr.com/photos/artbystevejohnson/4618054553/"><img title="Basketball Hoop" src="http://farm5.staticflickr.com/4070/4618054553_4d1cab039a_n.jpg" alt="" width="249" height="320" /></a><p class="wp-caption-text">Image by Steve A Johnson</p></div>
<p>When I was kid, the subject I hated most in school was PE.  Even in the seventh grade, it seemed like a barbarous hour in the middle of the school day where they forced us to put on sweaty clothes and compete in team sports.  Some kids were so competitive that it made the whole exercise unbearable.</p>
<p>The competitiveness was encouraged by the teachers (we called them coach—even though they taught History too).</p>
<p>I didn&#8217;t mind PE when it involved a non-competitive sports.  I liked running and solo exercises.  But, I was an exception.  Everyone else wanted to play a team sport, so that&#8217;s mostly what we did.  I went to 3 different junior highs and 3 high schools.  All of them were the same.  We played basketball, softball, and soccer mostly.  Occasionally, we would play tennis.</p>
<p>Here&#8217;s a typical PE class.  Everyone gets dressed and heads out to the blacktop (tarmac) to form up (very Army like).  We do a few stretches.  Then, the coach announces that we will be playing basketball today.  He chooses the two best basketball players as captains.  They each take turns choosing the rest of the class for their team.  The good players go first.  I was frequently last.  In fact, there was another kid who was sometimes chosen after me, but not all the time.<br />
Then, we&#8217;d play an awkward game of basketball.  I say awkward because I would never actually <em>want</em> the ball.  It&#8217;s not easy running around the court trying to look like you are involved and helping the team, but constantly putting yourself behind the person guarding you so you would never get the ball.  I run around and wait to be called in to shower.</p>
<p>Showering in junior high was weird too.  No one wanted to do it, but it was a requirement.  They used to have a shower monitor who would give you a rubber band at the showers when you proved you were wet enough.  You couldn&#8217;t leave the locker room unless you had one.  So, we all did this thing where we would get undressed, wrap a towel around our waists, stand next to a running shower and cup our hands to splash ourselves with water.  I&#8217;ve never seen anyone actually get into the shower or remove the towel. No one ever got clean—that wasn’t the goal.  We did this to get the rubber band and get out of their and back to our normal school day.</p>
<p>It&#8217;s not that I don&#8217;t like exercise.  In the Army, we did physical training nearly every day.  But we never did team sports.</p>
<p>I have this inexplicable ability to get hit in the face with any ball I play with.  I&#8217;ve had basketballs bounced off my face.  I have been hit in the face with baseballs.  I even once hit a tennis ball with the corner of my racket and had it fly into my face.  I&#8217;m glad we never had bowling at school.</p>
<p>These accidents wouldn&#8217;t be so bad if I just laughed them off like other kids would, but I was an awkward teenager.  I never laughed anything off.  While others laughed at me, I just kept going like nothing had happened.</p>
<p>PE probably wouldn&#8217;t have been so bad if there were only boys in our class.  I embarrassed myself in front of everyone, but I started to get interested in girls at this age.  I would have liked it more if I could have humiliated myself only in front of the boys.</p>
<p>I can remember playing softball in PE.  I always went to my normal position from Little League &#8211; right field.  No one ever hits the ball there, and if they did, so one expected a super-human catch like you see in the major leagues.  So, you were mostly safe.  Once, the ball was hit straight to me.  I couldn&#8217;t even move to get it.  I was a slow fly ball that was destined for the exact spot I was standing in.  I put up my glove and the ball landed in it.  Now, this wasn&#8217;t my glove— it was a borrowed glove form the PE department, and the webbing was gone between the thumb and fingers.  So, the ball fell from my glove to the ground.  I quickly picked it up and threw it into the infield (anywhere in the infield—-just away from me!).  I looked over at a girl who I fancied—-her name as Jackie.  She looked at me with disgust and said &#8220;You ass!&#8221;  This was the longest conversation I ever had with her.  I looked at the ground and pretended I didn&#8217;t hear.  It was a better tactic than thinking about how a normal person would respond.</p>
<p>In school, the kids who were good at team sports were the most popular, even with the teachers.  It&#8217;s amazing to think about how much better they were treated than the kids who were good at academics (I wasn&#8217;t one of these either).  High School was worse than junior high, because the everyone was interested in how the school football team was doing.  To be on the football team meant you were one of the leaders. You were like a member of congress.  You could leave the school on a bus to some other school in North County for a game and no one would care that you missed class.</p>
<p>All through school, the teachers and parents make it a point of telling you that you need to attend school to get ready for the real world.  I&#8217;m having this own conversation with my kids now.  Well, I&#8217;m in the real world now, and there is no way I would ever go back there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/03/man-i-hated-pe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old Man Wroolie</title>
		<link>http://www.wroolie.co.uk/2012/03/old-man-wroolie/</link>
		<comments>http://www.wroolie.co.uk/2012/03/old-man-wroolie/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 19:10:15 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=674</guid>
		<description><![CDATA[About six weeks ago, I did something to my back.&#160; I think it was trying to dislodge a frozen stake from our front gate on a frosty morning.&#160; Over the coming week, it got worse and worse and then I couldn’t walk or even get up off the floor.&#160; My back started having spasms when [...]]]></description>
			<content:encoded><![CDATA[<p>About six weeks ago, I did something to my back.&#160; I think it was trying to dislodge a frozen stake from our front gate on a frosty morning.&#160; Over the coming week, it got worse and worse and then I couldn’t walk or even get up off the floor.&#160; My back started having spasms when I laughed or sneezed or tried to do something ridiculous like lean forward.&#160; I missed a week of work (I called in sick even while working from home).&#160; It was awful.</p>
<p>So, I haven’t run in six weeks.&#160; This weekend is the Reading Half Marathon, which I will miss for the first time in 4 years.&#160; I have my number and parking permit already paid for.&#160; Well, stuff happens.</p>
<p>I wasn’t even able to ride my motorcycle.&#160; That was tough, because the weather has been pretty nice.&#160; Today, I finally got out on it, though.</p>
<p>I’ve never really had back problems before. It makes me feel old.&#160; It’s bad enough I’ll be turning 40 later this year.&#160; I feel too young to be this old.</p>
<p>Instead of my early morning runs, I’ve gone out for a few walks.&#160; This isn’t the same.&#160; When I’m running, everyone can see what I’m doing.&#160; When I’m walking, I’m just loitering.&#160; </p>
<p>But, my back is feeling better.&#160; My spirits are high. My bike is in great shape.&#160; I’m ready for the Summer (and 40).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/03/old-man-wroolie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DLI Today</title>
		<link>http://www.wroolie.co.uk/2012/02/dli-today/</link>
		<comments>http://www.wroolie.co.uk/2012/02/dli-today/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 10:38:58 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[Army Days]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[DLI]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=667</guid>
		<description><![CDATA[Here’s an interesting video on the Defense Language Institute (DLI) from the History Channel.&#160; I attended the Chinese Mandarin Course for all of 1991.&#160; It’s so hard to believe that was twenty one years ago.&#160; The video is interesting.&#160; We didn’t have whiteboards or the internet.&#160; We worked with photocopied articles from the People’s Daily. [...]]]></description>
			<content:encoded><![CDATA[<p>Here’s an interesting video on the Defense Language Institute (DLI) from the History Channel.&#160; I attended the Chinese Mandarin Course for all of 1991.&#160; It’s so hard to believe that was twenty one years ago.&#160; </p>
<p>The video is interesting.&#160; We didn’t have whiteboards or the internet.&#160; We worked with photocopied articles from the People’s Daily.</p>
<p>Also, the narrator (the Full Metal Jacket guy) says they study their “chosen” language.&#160; Yeah, right.&#160; My recruiter told me I would be studying Russian.&#160; Imagine my surprise at the end of Basic Training when they told me I would be learning Chinese.</p>
<p> <iframe height="315" src="http://www.youtube.com/embed/aSYQ_AP6Zb0" frameborder="0" width="420" allowfullscreen="allowfullscreen"></iframe>
<p>I can still speak Chinese and do it whenever I can—the internet helps.&#160; I’ve been to China on business where it really came in handy.&#160; Now, my kids are enrolled in a Chinese class on Saturday afternoons.&#160; It sticks with you, I guess.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/02/dli-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The internal narrator</title>
		<link>http://www.wroolie.co.uk/2012/01/the-internal-narrator/</link>
		<comments>http://www.wroolie.co.uk/2012/01/the-internal-narrator/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 09:45:00 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[Meditation]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=665</guid>
		<description><![CDATA[I have a tendency to think I need to describe things all the time.&#160; Even when no one else is present, I have an internal dialogue giving play by play commentary as if I was going to tell someone of my experiences later—no matter how trivial.&#160; It’s annoying. I notice it most when meditating.&#160; As [...]]]></description>
			<content:encoded><![CDATA[<p>I have a tendency to think I need to describe things all the time.&#160; Even when no one else is present, I have an internal dialogue giving play by play commentary as if I was going to tell someone of my experiences later—no matter how trivial.&#160; It’s annoying.</p>
<p>I notice it most when meditating.&#160; As my mind starts to calm, a little strand of ego starts to comment on what is happening as if it were telling someone else about it.&#160; Eventually, I leave this voice behind too—or at least I try to.</p>
<p>I wonder if other people do this.&#160; </p>
<p>It’s more subtle than I make it sound.&#160; But when I do something, there is always an internal commentary deciding how I’m going to describe it to someone else.&#160; How can you be in the moment when you are thinking about how to describe the moment to someone else?</p>
<p>Simon Amstell talked about this in a standup special I saw recently.&#160; He described doing something spontaneous with friends and thinking “This would make a good experience” and rather than experiencing it fully, he was thinking of how he would describe the experience to others later.&#160; It really made me laugh because I identified with it so much.</p>
<p>I wonder if you woke up as the last person on Earth (like 28 Days Later—but without the zombies).&#160; Would you constantly keep writing your internal story?&#160; Or would you just exist?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/01/the-internal-narrator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virgin Broadband Reliability</title>
		<link>http://www.wroolie.co.uk/2012/01/virgin-broadband-reliability/</link>
		<comments>http://www.wroolie.co.uk/2012/01/virgin-broadband-reliability/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 09:46:15 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[Miscellaneous Rants]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=663</guid>
		<description><![CDATA[I use Virgin Broadband’s top 50Mb cable package.&#160; I do so much work on the internet that I think the cost is justified. It’s lightening fast. But it is not very reliable. As I write this, it is 5:10 in the morning and the internet is down again (I will have to post it later).&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>I use Virgin Broadband’s top 50Mb cable package.&#160; I do so much work on the internet that I think the cost is justified. It’s lightening fast.</p>
<p>But it is not very reliable.</p>
<p>As I write this, it is 5:10 in the morning and the internet is down again (I will have to post it later).&#160; I’ve been up for over an hour, and I’ve done the routines of restarting the router and switching the cable modem off and on.&#160; I would be on the phone to tech support if it weren’t so early and I would wake up the rest of the house.</p>
<p>I have times like this every few weeks.&#160; I constantly have to reboot the router.&#160; Sometimes it works, but other times I just have to wait.&#160; I believe in moving everything to the cloud – except for this.&#160; No email, no net, no Spotify.&#160; During baseball season, it means I can’t watch Padre games in the early morning hours (I can watch San Diego night games at 3:30am in England).</p>
<p>I know some people who live in remote areas where they have no internet or very basic dial up service.&#160; It’s almost unthinkable now.&#160; </p>
<p>Even people with 2Mb broadband have a terrible experience.&#160; Back when I had 8Mb Orange broadband, the performance was terrible in the evening.&#160; I don’t get that with Virgin.&#160; I love it.&#160; If only it didn’t go down so often.</p>
<p>If you are considering Virgin Broadband.&#160; This is something you may want to think about.&#160; Of course, it could be a faulty switch in my area or something more local like that.&#160; If you have Virgin, I’d be interested in the experiences you’ve had.</p>
<p>I’m going to a client site today.&#160; Hopefully, it will be running again by the time I get home. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/01/virgin-broadband-reliability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Return of Javascript</title>
		<link>http://www.wroolie.co.uk/2012/01/the-return-of-javascript/</link>
		<comments>http://www.wroolie.co.uk/2012/01/the-return-of-javascript/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 21:54:28 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[Software Dev & Productivity]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/?p=661</guid>
		<description><![CDATA[A few years ago, I remember complaining that Javascript is a lost art.&#160; I was working with a .Net offshore team who claimed not to know HTML or Javascript—they only knew Asp.Net.&#160; When we were trying to come up with solutions to a particular web problem, I recommended we use Ajax.&#160; They didn’t know any [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago, I remember complaining that Javascript is a lost art.&#160; I was working with a .Net offshore team who claimed not to know HTML or Javascript—they only knew Asp.Net.&#160; When we were trying to come up with solutions to a particular web problem, I recommended we use Ajax.&#160; They didn’t know any ajax outside of the Microsoft Ajax extensions.</p>
<p>I did a lot of Javascript back in the day.&#160; I can remember sitting down on a Saturday night in 1999 reading through a giant copy of the “Javascript Bible”.&#160; Before ajax was mainstream, you used to have to know how to store data islands in your source and store all kinds of arrays locally.&#160; The sites I did work on where Javascript was heavily used were cumbersome and difficult to maintain.&#160; They usually supported only IE.</p>
<p>Anyone who has ever worked with me knows how much I hate Asp.net web forms.&#160; I prefer classic ASP to webforms.&#160; I admire PHP developers who had full control over their html and javascript.</p>
<p>But now . . . Javascript is back. </p>
<p>When Silverlight was dropped in favour of HTML5, I moaned. I remember the bad old days of trying to write to the lowest common denominator in browsers.&#160; I don’t want to go back to that.&#160; I’m happy to stay in the Silverlight haven.&#160; They supported Macs at least, but not Lynux or tablets.</p>
<p>But in the past few months, I’ve been able to use Javascript to write games (Impact JS), phone apps (jQuery Mobile and Phone Gap(, and server applications (node.js).&#160; </p>
<p>Javascript is better than I ever remember it being.&#160; It seems to be experiencing a renaissance.&#160; While all the coders of other languages are having pointless arguments about which one is better, Javascript is proving the be the uniter.&#160; Learn JS, and you can do anything.</p>
<p>These are exciting times.&#160; Right now, everyone seems to have a Javascript framework.&#160; There are so many to choose from.&#160; </p>
<p>Javascript is beautiful.&#160; And no one is trying to control it.</p>
<p>I’m really looking forward to the next year.&#160; I’m sold.&#160; HTML5 is the way of the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/01/the-return-of-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running ImpactJs in Visual Studio 2010 with a Project Template</title>
		<link>http://www.wroolie.co.uk/2012/01/running-impactjs-in-visual-studio-2010-with-a-project-template/</link>
		<comments>http://www.wroolie.co.uk/2012/01/running-impactjs-in-visual-studio-2010-with-a-project-template/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 16:58:58 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Software Dev & Productivity]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/2012/01/02/running-impactjs-in-visual-studio-2010-with-a-project-template/</guid>
		<description><![CDATA[I took December off to spend time with family and invest in some professional development.&#160; I worked mostly with HTML5 and javascript, but I did do some Drupal work too. For HTML5, I played with local storage, the new tags, backwards compatibility, PhoneGap, and finally the canvas tag.&#160; One thing I wanted to do was [...]]]></description>
			<content:encoded><![CDATA[<p>I took December off to spend time with family and invest in some professional <a href="http://176.67.174.6/wp-content/uploads/2012/01/game.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="game" border="0" alt="My Game" align="right" src="http://176.67.174.6/wp-content/uploads/2012/01/game_thumb.png" width="244" height="150" /></a>development.&#160; I worked mostly with HTML5 and javascript, but I did do some Drupal work too.</p>
<p>For HTML5, I played with local storage, the new tags, backwards compatibility, PhoneGap, and finally the canvas tag.&#160; One thing I wanted to do was learn how to build games in HTML5.&#160; There are some great tutorials on starting a project from scratch—I’ll post more on them later, but there’s also a very good javascript game engine called <a href="http://impactjs.com/" target="_blank">ImpactJS</a>.</p>
<p>ImpactJS is written almost entirely in javascript, but it does us a few php files (and a server) to allow it to do things like read from and write to files.&#160; According to the instructions, you need to set up in Apache (but an IIS port is available).&#160; </p>
<p>But I spend most of my life in Visual Studio 2010 (and occasionally Eclipse).&#160; I work faster in that IDE and all the keyboard shortcuts come second nature. After purchasing Impact and creating a few games, I found it tedious assigning a new port in the Apache conf on my local machine for every game.&#160; Also, the Komodo IDE is very good, but I prefer my boring ol’ Visual Studio.</p>
<p>So, I looked at the php files and created my own Visual Studio template.&#160; This may sound a little heavy using this big IDE only for javascript and html, but I find it very helpful that it will create a new server port each time I create a new web project.</p>
<p>I created a project template was going to post it online, but it includes all the ImpactJS source (which costs $99—but I got for $49 on a Christmas sale), so that probably wouldn’t be doing the developer any favours if I put it on all online.&#160; So, here are my contributions and the instructions for anyone else who has purchased ImpactJS and wants to use it in Visual Studio 2010.</p>
<h2>Step 1:&#160; Create a New Project.</h2>
<p>Create an empty ASP.Net Web project.&#160; Make sure to choose an empty project—otherwise you have to delete all the plumbing they give you.&#160; All you want is the web.config (and you can get rid of that if you don’t need it).</p>
<h2>Step 2:&#160; Add ImpactJS framework </h2>
<p>Drag all your ImpactJS source into the new project from Windows Explorer.&#160; This should include all the folders.&#160; The two root documents should be index.html and weltmeister.html.</p>
<p><a href="http://176.67.174.6/wp-content/uploads/2012/01/image.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://176.67.174.6/wp-content/uploads/2012/01/image_thumb.png" width="197" height="244" /></a></p>
<p>At this point, you can right-click on index.html and choose “View In Browser”.&#160; It will give you the “It Works!” text on the canvas (but it will create a server instance like localhost:12345).&#160; This is unimpressive.&#160; The game itself does not use the server—the Weltmeister tool does.</p>
<h2>Step 3: Add the Generic Handlers.</h2>
<p>You can right-click and view the Weltmeister tool in the browser now, but it will not work the way it should.&#160; The Weltmeister level editor uses 4 php files:</p>
<ul>
<li><strong>/lib/weltmeister/api/browse.php</strong> (browses for files in the filesystem) </li>
<li><strong>/lib/weltmeister/api/config.php</strong> (provides the $fileRoot variable and a few methods). </li>
<li><strong>/lib/weltmeister/api/glob.php</strong> (gets files matching a certain pattern in the directories) </li>
<li><strong>/lib/weltmeister/api/save.php</strong> (saves files edited in Weltmeister to the directory) </li>
</ul>
<p>The contents of these four files are pretty straight forward and easy to convert to C#.&#160; I initially created a aspx pages to replace them, but then found Generic Handlers to be more effective since I didn’t need a front end webform.</p>
<p>So, we will create four files to replace these four (they can sit side by side—the php files won’t get in our way).&#160; </p>
<p>First add a Web.config file to the api folder (it will limit the scope to this folder only).&#160; In this file add the fileRoot variable:</p>
<pre>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;configuration&gt;&#160;&#160; &lt;appSettings&gt;&#160;&#160;&#160;&#160; &lt;add key=&quot;fileRoot&quot; value=&quot;../../..&quot;/&gt;&#160;&#160; &lt;/appSettings&gt;
&lt;/configuration&gt;</pre>
<p>Now, add three more files of type “Generic Hander” to the api folder.</p>
<p>&#160;<a href="http://176.67.174.6/wp-content/uploads/2012/01/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://176.67.174.6/wp-content/uploads/2012/01/image_thumb1.png" width="244" height="170" /></a></p>
<p>Give these files the same names as their PHP counterparts:</p>
<ul>
<li>browse.ashx </li>
<li>glob.ashx </li>
<li>save.ashx </li>
</ul>
<p>Here is the code for each file:</p>
<h3>browse.ashx:</h3>
<pre class="csharpcode"><span class="kwrd">using</span> System.IO;
<span class="kwrd">using</span> System.Text;
<span class="kwrd">using</span> System.Web;
<span class="kwrd">using</span> System.Web.Script.Serialization;

<span class="kwrd">namespace</span> SpaceShooter.lib.weltmeister.api
{
    <span class="rem">/// &lt;summary&gt;</span>
    <span class="rem">/// Summary description for browse</span>
    <span class="rem">/// &lt;/summary&gt;</span>
    <span class="kwrd">public</span> <span class="kwrd">class</span> browse : IHttpHandler
    {
        <span class="kwrd">public</span> <span class="kwrd">void</span> ProcessRequest(HttpContext context)
        {
            var fileRoot = context.Request.MapPath(System.Configuration.ConfigurationManager.AppSettings[<span class="str">&quot;fileRoot&quot;</span>].ToString());
            <span class="kwrd">if</span> (!fileRoot.EndsWith(<span class="str">&quot;/&quot;</span>))
                fileRoot += <span class="str">&quot;/&quot;</span>;

            var dir = fileRoot + context.Request.QueryString[<span class="str">&quot;dir&quot;</span>].ToString();
            <span class="kwrd">if</span> (!dir.EndsWith(<span class="str">&quot;/&quot;</span>))
                dir += <span class="str">&quot;/&quot;</span>;

            var find = <span class="str">&quot;*.*&quot;</span>;
            <span class="kwrd">switch</span> (context.Request.QueryString[<span class="str">&quot;type&quot;</span>].ToString())
            {
                <span class="kwrd">case</span> <span class="str">&quot;images&quot;</span>:
                    find = <span class="str">&quot;*.{png,gif,jpg,jpeg}&quot;</span>;
                    <span class="kwrd">break</span>;
                <span class="kwrd">case</span> <span class="str">&quot;scripts&quot;</span>:
                    find = <span class="str">&quot;*.js&quot;</span>;
                    <span class="kwrd">break</span>;
            }

            var dirs = Directory.GetDirectories(dir, <span class="str">&quot;*&quot;</span>, SearchOption.AllDirectories);
            var files = Directory.GetFiles(dir, find, SearchOption.AllDirectories);

            var fileRootLength = fileRoot.Length;
            <span class="kwrd">for</span> (var i = 0; i &lt; files.Length; i++)
            {
                files[i] = files[i].Replace(fileRoot, <span class="str">&quot;&quot;</span>);
            }
            <span class="kwrd">for</span> (var i = 0; i &lt; dirs.Length; i++)
            {
                dirs[i] = dirs[i].Replace(fileRoot, <span class="str">&quot;&quot;</span>);
            }

            var parent = dir.Substring(0, dir.ToString().IndexOf(<span class="str">&quot;/&quot;</span>));

            context.Response.ContentType = <span class="str">&quot;application/json&quot;</span>;
            context.Response.ContentEncoding = Encoding.UTF8;
            var jserializer = <span class="kwrd">new</span> JavaScriptSerializer();
            context.Response.Write(jserializer.Serialize(<span class="kwrd">new</span> Response()
            {
                parent = parent,
                dirs = dirs,
                files = files
            }));
        }

        <span class="kwrd">public</span> <span class="kwrd">bool</span> IsReusable
        {
            get
            {
                <span class="kwrd">return</span> <span class="kwrd">false</span>;
            }
        }

        <span class="kwrd">public</span> <span class="kwrd">class</span> Response
        {
            <span class="kwrd">public</span> <span class="kwrd">string</span> parent { get; set; }

            <span class="kwrd">public</span> <span class="kwrd">string</span>[] dirs { get; set; }

            <span class="kwrd">public</span> <span class="kwrd">string</span>[] files { get; set; }
        }
    }
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h3>glob.ashx:</h3>
<pre class="csharpcode">
<span class="kwrd">using</span> System.Collections.Generic;
<span class="kwrd">using</span> System.IO;
<span class="kwrd">using</span> System.Text;
<span class="kwrd">using</span> System.Web;
<span class="kwrd">using</span> System.Web.Script.Serialization;

<span class="kwrd">namespace</span> SpaceShooter.lib.weltmeister.api
{
    <span class="rem">/// &lt;summary&gt;</span>
    <span class="rem">/// Summary description for glob</span>
    <span class="rem">/// &lt;/summary&gt;</span>
    <span class="kwrd">public</span> <span class="kwrd">class</span> glob : IHttpHandler
    {

        <span class="kwrd">public</span> <span class="kwrd">void</span> ProcessRequest(HttpContext context)
        {
            var fileRoot = context.Request.MapPath(System.Configuration.ConfigurationManager.AppSettings[<span class="str">&quot;fileRoot&quot;</span>].ToString());
            <span class="kwrd">if</span> (!fileRoot.EndsWith(<span class="str">&quot;/&quot;</span>))
                fileRoot += <span class="str">&quot;/&quot;</span>;

            var globs = context.Request.QueryString[<span class="str">&quot;glob[]&quot;</span>].ToString();
            List&lt;<span class="kwrd">string</span>&gt; files = <span class="kwrd">new</span> List&lt;<span class="kwrd">string</span>&gt;();
            <span class="rem">//get the files</span>
            <span class="kwrd">foreach</span> (var glob <span class="kwrd">in</span> globs.Split(<span class="str">','</span>))
            {
                var pattern = glob.Replace(<span class="str">&quot;..&quot;</span>, <span class="str">&quot;&quot;</span>).Replace(<span class="str">&quot;/&quot;</span>,<span class="str">&quot;\&quot;);
                files.AddRange(Directory.GetFiles(fileRoot, pattern));
            }

            //remove the fileRoot and reverse slashes
            for (var i = 0; i &lt; files.Count;i++ )
            {
                files[i] = files[i].Replace(fileRoot, &quot;</span><span class="str">&quot;);
                files[i] = files[i].Replace(@&quot;</span><span class="str">&quot;,&quot;</span>/<span class="str">&quot;);
            }
            context.Response.ContentType = &quot;</span>application/json<span class="str">&quot;;
            context.Response.ContentEncoding = Encoding.UTF8;
            var jserializer = new JavaScriptSerializer();
            context.Response.Write(jserializer.Serialize(files));

            //   return &quot;</span>&quot;;
        }

        <span class="kwrd">public</span> <span class="kwrd">bool</span> IsReusable
        {
            get
            {
                <span class="kwrd">return</span> <span class="kwrd">false</span>;
            }
        }
    }
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h3>save.ashx:</h3>
<pre class="csharpcode"><span class="kwrd">using</span> System;
<span class="kwrd">using</span> System.Collections.Generic;
<span class="kwrd">using</span> System.IO;
<span class="kwrd">using</span> System.Linq;
<span class="kwrd">using</span> System.Text;
<span class="kwrd">using</span> System.Web;
<span class="kwrd">using</span> System.Web.Script.Serialization;

<span class="kwrd">namespace</span> SpaceShooter.lib.weltmeister.api
{
    <span class="rem">/// &lt;summary&gt;</span>
    <span class="rem">/// Summary description for save</span>
    <span class="rem">/// &lt;/summary&gt;</span>
    <span class="kwrd">public</span> <span class="kwrd">class</span> save : IHttpHandler
    {

        <span class="kwrd">public</span> <span class="kwrd">void</span> ProcessRequest(HttpContext context)
        {
            var fileRoot = context.Request.MapPath(System.Configuration.ConfigurationManager.AppSettings[<span class="str">&quot;fileRoot&quot;</span>].ToString());
            <span class="kwrd">if</span> (!fileRoot.EndsWith(<span class="str">&quot;/&quot;</span>))
                fileRoot += <span class="str">&quot;/&quot;</span>;
            var path = context.Request.Form[<span class="str">&quot;path&quot;</span>].ToString();
            var data = context.Request.Form[<span class="str">&quot;data&quot;</span>].ToString();

            var result = <span class="kwrd">new</span> Result();

            <span class="kwrd">if</span> (!<span class="kwrd">string</span>.IsNullOrEmpty(path) &amp;&amp;
                !<span class="kwrd">string</span>.IsNullOrEmpty(path))
            {
                path = fileRoot + path.ToString().Replace(<span class="str">&quot;..&quot;</span>, <span class="str">&quot;&quot;</span>);

                <span class="kwrd">if</span> (path.EndsWith(<span class="str">&quot;.js&quot;</span>))
                {
                    <span class="kwrd">try</span>
                    {
                        <span class="rem">//if the file already exists, delete it</span>
                        <span class="kwrd">if</span> (File.Exists(path))
                        {
                            File.Delete(path);
                        }
                        var streamWriter = File.CreateText(path);
                        streamWriter.Write(data);
                    }
                    <span class="kwrd">catch</span> (Exception ex)
                    {
                        result.error = <span class="str">&quot;2&quot;</span>;
                        result.msg = <span class="kwrd">string</span>.Format(<span class="str">&quot;Couldn't write to file: {0}&quot;</span>, path);
                    }
                }
                <span class="kwrd">else</span>
                {
                    result.error = <span class="str">&quot;3&quot;</span>;
                    result.msg = <span class="str">&quot;File must have a .js suffix&quot;</span>;
                }

            }
            <span class="kwrd">else</span>
            {
                result.error = <span class="str">&quot;1&quot;</span>;
                result.msg = <span class="str">&quot;No Data or Path specified&quot;</span>;
            }
            context.Response.ContentType = <span class="str">&quot;application/json&quot;</span>;
            context.Response.ContentEncoding = Encoding.UTF8;
            var jserializer = <span class="kwrd">new</span> JavaScriptSerializer();
            context.Response.Write(jserializer.Serialize(result));

        }

        <span class="kwrd">public</span> <span class="kwrd">bool</span> IsReusable
        {
            get
            {
                <span class="kwrd">return</span> <span class="kwrd">false</span>;
            }
        }

        <span class="kwrd">public</span> <span class="kwrd">class</span> Result
        {
            <span class="kwrd">public</span> <span class="kwrd">string</span> error { get; set; }
            <span class="kwrd">public</span> <span class="kwrd">string</span> msg { get; set; }
        }
    }
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Your final api folder should look like this:</p>
<p><a href="http://176.67.174.6/wp-content/uploads/2012/01/image2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://176.67.174.6/wp-content/uploads/2012/01/image_thumb2.png" width="212" height="190" /></a></p>
<p>You can get rid of the php files if you wish, but they should not be interfering with anything.</p>
<h2>Step 4:&#160; Amend config.js</h2>
<p>Finally, you need to tell the javascript classes to run these ashx files instead of the php files, this is can in the file /lib/welbmeister/config.js under the api property.&#160; Simply change the php extension to ashx:</p>
<pre>'api': {
		'save': 'lib/weltmeister/api/save.<strong>ashx'</strong>,
		'browse': 'lib/weltmeister/api/browse.<strong>ashx'</strong>,
		'glob': 'lib/weltmeister/api/glob.<strong>ashx'</strong>
	}</pre>
<h2>Step 5: Save the project as a template</h2>
<p>Now, you don’t want to have to do this for every new game project, so you need to turn this into a template (but you might want to test out the Weltmeister tool first and make sure everything is running as it should).</p>
<p>To create a new template, simply go to the file menu of Visual Studio and choose “Export Template”.&#160; Then you can go through the wizard to create a new template on your pc to quickly create new ImpactJS game projects.</p>
<p>You may also want to create an “entity” template to speed things up when you create new entities for your game using the same menu (but choose Item Template instead of Project Template).</p>
<h2>What about Baking?</h2>
<p>Okay, there are two other php files in the framework that could be converted.&#160; When you finish your ImpactJS game, you can use a command line tool to “bake” the game and get it ready for deployment.&#160; This basically consolidates all the javascript files into one file and minifies it.&#160; This is done in the tools folder using a file called bake.php.&#160; </p>
<p>I have not converted the bake file to c# yet.&#160; I don’t deploy too often. However, I may convert it in the future.&#160; I would use the <a href="http://geekswithblogs.net/lbugnion/archive/2007/02/23/107120.aspx" target="_blank">aspx port of jsmin</a> written by Laurent Bugnion and convert bake.php to an aspx or ashx file.&#160; The ImpactJS developer has put very little reliance on php, so conversion should not be difficult.</p>
<h2>Let me know how it goes</h2>
<p>That’s it.&#160; I hope, if you found this post, this gets you building games in Visual Studio (with your familiar shortcuts, plug ins, and code-completion).&#160; If you found it useful, please add a comment below.&#160; And if you convert the baking file, please let me know too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2012/01/running-impactjs-in-visual-studio-2010-with-a-project-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Warming up to HTML5</title>
		<link>http://www.wroolie.co.uk/2011/12/warming-up-to-html5/</link>
		<comments>http://www.wroolie.co.uk/2011/12/warming-up-to-html5/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 18:24:39 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[Software Dev & Productivity]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/2011/12/15/warming-up-to-html5/</guid>
		<description><![CDATA[Last week, I finally got around to reading the Microsoft announcements from September about Windows 8 and WinRT.&#160; Like a lot of people, I was surprised by the dropping of Silverlight for the Metro UI.&#160; HTML5 (along with XAML) would be used prominently. HTML5 again. I’m old school and I can’t get rid of the [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I finally got around to reading the Microsoft announcements from September about Windows 8 and WinRT.&#160; Like a lot of people, I was surprised by the dropping of Silverlight for the Metro UI.&#160; HTML5 (along with XAML) would be used prominently.</p>
<p>HTML5 again.</p>
<p>I’m old school and I can’t get rid of the memories of coding conditional blocks of code for different browsers.&#160; A lot of web apps would only adhere to one browser because of the different capabilities.&#160; In corporate environments, this was mostly IE.&#160; The difference capabilities still exists, so I was not pleased about using conditional coding again.&#160; Silverlight was a nice hiding place—write once run anywhere (except Linux, and tablets, and phones—okay just Windows and Macs!).</p>
<p>But, things are much better than they were before.&#160; Now, we have <a href="http://www.modernizr.com/" target="_blank">Modernizr</a> and <a href="http://jquery.com/" target="_blank">jQuery</a>.&#160; Now we have devices which, for the most part, adhere to one browser only (If I write for IOS, I only have to worry about Safari).&#160; </p>
<p>I’m at the point now where I’m excited about HTML5.&#160; I’ve taken December off from my current contract to really have a good play with it.&#160; I’m very impressed with localStorage and GeoLocation.&#160; Canvas is what I’m playing with next.</p>
<p>And, after months of learning Android, I discovered <a href="http://phonegap.com" target="_blank">PhoneGap</a>.&#160; PhoneGap allows you to host html5 in a compiled application&#160; (IOS, Android, Windows Phone) and release it in an app store.&#160; It also provides a javascript library to interface with device libraries like GPS, camera, and the accelerometer.&#160; I’m struggling with the intricacies of Java (C# keeps getting in the way), but I can do just as much in javascript.</p>
<p>HTML5 allows for mobile apps (web and compiled) and MetroUI.</p>
<p>Once again, the future is bright.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2011/12/warming-up-to-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I love coding for WP7</title>
		<link>http://www.wroolie.co.uk/2011/12/i-love-coding-for-wp7/</link>
		<comments>http://www.wroolie.co.uk/2011/12/i-love-coding-for-wp7/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 17:59:06 +0000</pubDate>
		<dc:creator>wroolie</dc:creator>
				<category><![CDATA[C# Coding]]></category>

		<guid isPermaLink="false">http://www.wroolie.co.uk/2011/12/08/i-love-coding-for-wp7/</guid>
		<description><![CDATA[So, I’ve spent ages trying to learn to code on an Android.&#160; I’ve read a few books.&#160; I’ve got my dev environment all set up.&#160; I’ve coded a few test apps and put them on my phone.&#160; But the going is slow.&#160; If I were a Java developer, I’d probably be all over it. A [...]]]></description>
			<content:encoded><![CDATA[<p>So, I’ve spent ages trying to learn to code on an Android.&#160; I’ve read a few books.&#160; I’ve got my dev environment all set up.&#160; I’ve coded a few test apps and put them on my phone.&#160; But the going is slow.&#160; If I were a Java developer, I’d probably be all over it.</p>
<p>A friend asked me to do a quick Windows Phone 7 app and I could not believe how easy it was.&#160; Since I’ve been working heavily with Silverlight for the past few years, I know most of the code already.&#160; I had to do minimal reading to get a full app up and running.&#160; It was was nice to work in Visual Studio again.&#160; Using Resharper, I was flying through the code.</p>
<p>I only wish more people had Windows Phone 7.&#160; </p>
<p>I would get a phone myself, but 3 things are holding me back currently:</p>
<ol>
<li>I don’t want to be one of 5 people in the UK with a Windows Phone 7.</li>
<li>It’s not open, like Android is.&#160; I would be at the mercy of the phone manufacturers for upgrades (like with an iPhone).</li>
<li>It doesn’t have expandable memory (to my knowledge).</li>
<li>My current contract isn’t up until April.</li>
</ol>
<p>But it’s nice to be able to write apps so quickly (since I spent so much time learning the trivial details of Silverlight).&#160; Maybe.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wroolie.co.uk/2011/12/i-love-coding-for-wp7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

