<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>{ bob.yexley.net }</title>
	
	<link>http://bob.yexley.net</link>
	<description>College football and deer hunting...love this time of year</description>
	<lastBuildDate>Mon, 17 Oct 2011 20:13:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>

   <image>
    <title>{ bob.yexley.net }</title>
    <url>http://0.gravatar.com/avatar/3dc66e090945740d88cf86daeb06f9e1.png?s=48</url>
    <link>http://bob.yexley.net</link>
   </image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ryexley" /><feedburner:info uri="ryexley" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>The next chapter in my career</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/oDbc_F4QNAk/</link>
		<comments>http://bob.yexley.net/2011/08/the-next-chapter-in-my-career/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 03:32:47 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[FDC]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Scripps Networks]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=163</guid>
		<description>A little over three years ago my family and I moved here to Knoxville, and I took a job with Scripps Networks. It was a fantastic job&amp;#8230;one of the best opportunities I&amp;#8217;ve had so far in my career. My time at Scripps Networks over the past few years has been one of the most valuable [...]</description>
			<content:encoded><![CDATA[<p>A little over three years ago my family and I moved here to Knoxville, and I took a job with <a href="http://scrippsnetworks.com">Scripps Networks</a>. It was a fantastic job&#8230;one of the best opportunities I&#8217;ve had so far in my career. My time at Scripps Networks over the past few years has been one of the most valuable learning experiences of my career, and I have valued that time immeasurably. I&#8217;ve had the privilege to learn and gain great experience with technologies such as BizTalk, Silverlight, WCF, NHibernate and ASP.NET MVC (which I&#8217;ve grown more and more excited about the more I&#8217;ve used it).</p>

<p>However, recent evolutions within the IT organization there have introduced new elements of overhead that have made productivity, uummm&#8230;difficult to attain. That, combined with a recent decision to eliminate the use of the .NET framework and the Windows Server platform as tools for future development, among other things, prompted me to start exploring other potential opportunities (frankly, I just don&#8217;t have the patience to become a Java developer at this point of my life/career).</p>

<p>As God has so often done in my life, He came through once again, and opened the door for another local opportunity here in Knoxville that I am very excited about. Tomorrow I will start my new job as a software developer at <a href="http://foodtodonate.com">Food Donation Connection</a> (you can read more about them <a href="http://www.foodtodonate.com/Fdcmain/About.aspx">here</a>). As they are a faith-based organization, I am excited about the opportunity to use the gifts and skills that God has blessed me with in a way that more directly brings honor and glory to Him than any previous job at which I&#8217;ve worked. I am also excited at the opportunity to continue working with .NET technologies on the Windows platform, in an environment where I&#8217;ll be working quite a bit closer to the metal.</p>

<p>I can&#8217;t emphasize enough how appreciative I am of my colleagues at Scripps Networks and the opportunities they gave me during my time there, and I wish them all the best of luck and great success in the future. At the same time, I am very excited about getting started with the next chapter of my career and all of the opportunities and challenges it will present.</p>

<p>P.S. &#8211; I&#8217;m also at least a little bit excited about now being eligible for all of the contests and promotions available through Scripps Networks brands (Blog Cabin here I come!). : )</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=oDbc_F4QNAk:p6GZ-ZzPlls:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=oDbc_F4QNAk:p6GZ-ZzPlls:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=oDbc_F4QNAk:p6GZ-ZzPlls:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=oDbc_F4QNAk:p6GZ-ZzPlls:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=oDbc_F4QNAk:p6GZ-ZzPlls:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=oDbc_F4QNAk:p6GZ-ZzPlls:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/oDbc_F4QNAk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/08/the-next-chapter-in-my-career/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/08/the-next-chapter-in-my-career/</feedburner:origLink></item>
		<item>
		<title>Watched a “Super” lousy movie</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/WqQLkRFGJXY/</link>
		<comments>http://bob.yexley.net/2011/05/watched-a-super-lousy-movie/#comments</comments>
		<pubDate>Sat, 28 May 2011 03:52:57 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=157</guid>
		<description>I don&amp;#8217;t typically bother writing blog posts about stuff like this, but this movie was SO completely horrible in every way, I was moved enough (in a bad way) to write about it. I made a mistake tonight. As Crys and I were browsing through the On-Demand movie listings to find something to watch, we [...]</description>
			<content:encoded><![CDATA[<p>I don&#8217;t typically bother writing blog posts about stuff like this, but this movie was SO completely horrible in every way, I was moved enough (in a bad way) to write about it.</p>

<p>I made a mistake tonight. As Crys and I were browsing through the On-Demand movie listings to find something to watch, we stumbled onto the movie <a href="http://www.imdb.com/title/tt1512235/">Super</a>. We both recalled seeing the trailers advertising the movie when it was in theaters, and thought it looked like a funny movie. We checked <a href="http://www.imdb.com/">IMDB</a> and saw that it got pretty good ratings/reviews (7.3 out of 10), so we thought we&#8217;d go for it. What a HUGE mistake.</p>

<p>I totally regret watching this movie. It was an hour-and-a-half of my life that was totally wasted and I can&#8217;t get it back. It was NOTHING like the previews made it out to be, and how over 2500 people gave this movie an average rating of 7.3/10 is totally beyond me, and frankly, kinda scares me a little bit.</p>

<p>The movie was filled with gratuitous, unnecessary violence and gore, profanity, sexuality, drug use&#8230;and absolutely NOTHING entertaining. Frankly, the ONLY reason I watched it all the way through was because I kept waiting (hopefully) that the plot would turn itself around and redeem itself&#8230;but it never did. In fact, I was ALMOST satisfied in the last five minutes that it might have&#8230;and then what-might-have-been was just flushed right down the toilet with what might have been the WORST ending to a movie I&#8217;ve ever seen. Absolutely horrible.</p>

<p>There was really only ONE good thing that I took away from the movie at all, and it&#8217;s hardly worth going into detail about it here. If you&#8217;re really interested, ask me.</p>

<p>Ultimately, I just wanted to share&#8230;don&#8217;t waste your time with this movie. Absolutely terrible.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=WqQLkRFGJXY:oqXJEFf-Ec4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=WqQLkRFGJXY:oqXJEFf-Ec4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=WqQLkRFGJXY:oqXJEFf-Ec4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=WqQLkRFGJXY:oqXJEFf-Ec4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=WqQLkRFGJXY:oqXJEFf-Ec4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=WqQLkRFGJXY:oqXJEFf-Ec4:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/WqQLkRFGJXY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/05/watched-a-super-lousy-movie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/05/watched-a-super-lousy-movie/</feedburner:origLink></item>
		<item>
		<title>Project Silk: Patterns and Practices guidance from Microsoft for developing modern web apps</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/OzulGKUPufk/</link>
		<comments>http://bob.yexley.net/2011/04/project-silk/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 04:15:50 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=127</guid>
		<description>Over the past few months I&amp;#8217;ve had the privilege to work with the Microsoft Patterns and Practices group as an advisory board member on Project Silk: Project Silk provides guidance for building cross-browser web applications with a focus on client-side interactivity. These applications take advantage of the latest web standards like HTML5, CSS3 and ECMAScript [...]</description>
			<content:encoded><![CDATA[<p>Over the past few months I&#8217;ve had the privilege to work with the <a href="http://msdn.microsoft.com/en-us/practices">Microsoft Patterns and Practices group</a> as an advisory board member on <a href="http://silk.codeplex.com">Project Silk</a>:</p>

<blockquote>
  <p>Project Silk provides guidance for building cross-browser web applications with a focus on client-side interactivity. These applications take advantage of the latest web standards like HTML5, CSS3 and ECMAScript 5 along with modern web technologies such as jQuery, Internet Explorer 9, and ASP.NET MVC3.</p>
  
  <p>To illustrate this guidance, the project includes a reference implementation called Mileage Stats that enables its users to track various metrics about their vehicles and fill-ups. Much of the effort in building Mileage Stats was applied to the usability and interactivity of the experience. Animations were included to enhance the enjoyment of the site and AJAX is used to keep the interface responsive and immersive. A great deal of care was also taken to ensure the client-side JavaScript facilitates modularity and maintainability. To accomplish these design goals, the JavaScript code was structured into “widgets” that benefit from the jQuery UI Widget Factory.</p>
</blockquote>

<p><a href="http://bob.yexley.net/content/2011/04/mileagestats.jpg" target="_blank"><img src="http://bob.yexley.net/content/2011/04/mileagestats-300x296.jpg" alt="Mileage Stats" title="Project Silk reference implementation app: Mileage Stats" width="300" height="296" class="left" /></a>The thing that I appreciate the most about this project is the effort that Microsoft is putting in to providing a <strong>comprehensive set of guidance on best practices for building complex web applications with rich, client-side functionality using modern, standards-compliant web technologies</strong>. Think about that&#8230;who else is doing that? With this project, Microsoft is taking the lead in this area of guidance. I&#8217;m not aware of any other comprehensive source for information of this kind for any web development platform.</p>

<p>That last thought is what makes this project so valuable. This guidance is for developing web applications with rich, client-side functionality using modern, standards-compliant web technologies (I know, I already said that). What that means is that this guidance is valuable <strong>regardless of the server-side technology you&#8217;re using</strong>. Is your app built with PHP or ColdFusion on Apache? Ruby on Rails? Java? This guidance is still valuable to you, because 90% of it is client-side guidance.</p>

<p>This guidance primarily consists of two main parts: documentation (a book) and a reference implementation (described in the quote above, taken from the project site). The reference implementation is a Visual Studio solution, so you will need Visual Studio to open and run the solution. However, even if you don&#8217;t have Visual Studio, you can still open and view the contents of the web project itself in any standard text editor (it&#8217;s really just JavaScript, CSS and view files (Razor view engine views (.cshtml files)) for the purpose of evaluating the code.</p>

<p>The reason I&#8217;m explaining where you can get it and how you can open it for review, is because <strong>WE WANT IT REVIEWED</strong>. <strong>WE WANT FEEDBACK</strong>. The documentation is not yet available to the public (I will post an update when it is), but the reference implementation is available to anyone right now. So go check it out. Review the code. Share your thoughts&#8230;<a href="http://silk.codeplex.com/discussions">join the discussion</a> and provide your feedback.</p>

<p>I&#8217;m very excited about this project, and you should be too. I&#8217;ll be posting more updates as more information is available in the coming weeks. We&#8217;ll be reviewing and editing documentation soon. It&#8217;s exciting to see Microsoft embracing web standards in this way. This is not the proprietary Microsoft of old. We all need to get behind this effort. Join us.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=OzulGKUPufk:tIzHBjHgaCE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=OzulGKUPufk:tIzHBjHgaCE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=OzulGKUPufk:tIzHBjHgaCE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=OzulGKUPufk:tIzHBjHgaCE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=OzulGKUPufk:tIzHBjHgaCE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=OzulGKUPufk:tIzHBjHgaCE:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/OzulGKUPufk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/04/project-silk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/04/project-silk/</feedburner:origLink></item>
		<item>
		<title>Using Less CSS with Visual Studio and IIS Express</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/j-mz-PU1S6g/</link>
		<comments>http://bob.yexley.net/2011/04/using-less-css-with-visual-studio-and-iis-express/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 22:18:52 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[IIS Express]]></category>
		<category><![CDATA[Less CSS]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=114</guid>
		<description>I recently started working on a personal ASP.NET MVC project on which I wanted to use Less CSS for styling. I quickly ran into a problem when I discovered that a IIS Express doesn&amp;#8217;t have &amp;#8220;.less&amp;#8221; registered as a valid MIME type, so it won&amp;#8217;t serve up the file at all. So that forced me [...]</description>
			<content:encoded><![CDATA[<p>I recently started working on a personal ASP.NET MVC project on which I wanted to use <a href="http://lesscss.org/">Less CSS</a> for styling. I quickly ran into a problem when I discovered that a <a href="http://learn.iis.net/page.aspx/868/iis-express-overview/">IIS Express</a> doesn&#8217;t have &#8220;.less&#8221; registered as a valid <a href="http://en.wikipedia.org/wiki/Internet_media_type">MIME type</a>, so it won&#8217;t serve up the file at all. So that forced me to dig around to figure out how to add a mimetype to the IIS Express configuration. I found a working solution, and thought it could potentially help someone else out.</p>

<p>To add the .less extension as a valid MIME type to IIS express follow these steps:
<ol>
<li>Open a windows command prompt</li>
<li>Switch to the directory that IIS Express is installed in (on my 64 bit Windows 7 system, it was installed in C:\Program Files (x86)\IIS Express)</li>
<li>Execute the following command:</li>
</ol>
<pre>appcmd set config /section:staticContent /+[fileExtension='.less',mimeType='text/css']</pre></p>

<p>Boom. Works great. Now I&#8217;m rollin&#8217; with Less CSS in my ASP.NET MVC project developing on IIS Express. Sweetness.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=j-mz-PU1S6g:uFeEaPiS26s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=j-mz-PU1S6g:uFeEaPiS26s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=j-mz-PU1S6g:uFeEaPiS26s:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=j-mz-PU1S6g:uFeEaPiS26s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=j-mz-PU1S6g:uFeEaPiS26s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=j-mz-PU1S6g:uFeEaPiS26s:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/j-mz-PU1S6g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/04/using-less-css-with-visual-studio-and-iis-express/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/04/using-less-css-with-visual-studio-and-iis-express/</feedburner:origLink></item>
		<item>
		<title>Making OData service URLs “pretty”</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/_bmnv0XGN6s/</link>
		<comments>http://bob.yexley.net/2011/04/making-odata-service-urls-pretty/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 16:05:57 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=109</guid>
		<description>After a discussion I had a Mix11 last week, I&amp;#8217;ve been playing around with OData, and have been REALLY impressed with it. One thing that my mild OCD wasn&amp;#8217;t crazy about it though was having the &amp;#8220;.svc&amp;#8221; extension in my URLs, so I did some Googling to see if there was a way I could [...]</description>
			<content:encoded><![CDATA[<p>After a discussion I had a <a href="http://live.visitmix.com">Mix11</a> last week, I&#8217;ve been playing around with <a href="http://odata.org">OData</a>, and have been REALLY impressed with it. One thing that my mild OCD wasn&#8217;t crazy about it though was having the &#8220;.svc&#8221; extension in my URLs, so I did some <a href="http://www.google.com/search?ie=UTF-8&amp;q=odata+routing">Googling</a> to see if there was a way I could use routing to clean that up a bit, and found <a href="http://blogs.msdn.com/b/rjacobs/archive/2010/04/05/using-system-web-routing-with-data-services-odata.aspx">this article</a>. Turns out it was REALLY simple to do, and now I have nice, pretty URLs for my data services, like this&#8230;</p>

<pre><code>http://example.com/services/camp/data/brands(15)/assets
</code></pre>

<p>And this was all it took to make that happen (in addition to getting the service itself working, of course):</p>

<pre><code>// Global.asax.cs
// must have a project reference to System.ServiceModel.Activation
using System.ServiceModel.Activation
...
public static void RegisterRoutes(RouteCollection routes)
{
    var dataServiceHostFactory = new DataServiceHostFactory();
    RouteTable.Routes.Add(new ServiceRoute("services/camp/data", dataServiceHostFactory, typeof(CAMPData))); // CAMPData is the name of my .svc file for the service
    ...
}
</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=_bmnv0XGN6s:yN1FPzeckn8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=_bmnv0XGN6s:yN1FPzeckn8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=_bmnv0XGN6s:yN1FPzeckn8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=_bmnv0XGN6s:yN1FPzeckn8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=_bmnv0XGN6s:yN1FPzeckn8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=_bmnv0XGN6s:yN1FPzeckn8:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/_bmnv0XGN6s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/04/making-odata-service-urls-pretty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/04/making-odata-service-urls-pretty/</feedburner:origLink></item>
		<item>
		<title>jQuery ajax calls to ASP.NET MVC controller actions and Internet Explorer caching</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/XgmTOIlk4Y0/</link>
		<comments>http://bob.yexley.net/2011/04/jquery-ajax-calls-to-asp-net-mvc-controller-actions-and-internet-explorer-caching/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 04:50:25 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=101</guid>
		<description>Over the past couple of days at work I&amp;#8217;ve been working on getting a progress bar and some other elements of a page updated by making an ajax call with jQuery to an ASP.NET MVC (3) controller action. Everything was working great, with the exception of Internet Explorer (I&amp;#8217;m currently using v9, but the issue [...]</description>
			<content:encoded><![CDATA[<p>Over the past couple of days at work I&#8217;ve been working on getting a progress bar and some other elements of a page updated by making an ajax call with jQuery to an ASP.NET MVC (3) controller action. Everything was working great, with the exception of Internet Explorer (I&#8217;m currently using v9, but the issue we&#8217;ve been having is also known to exist in IE8 as well). The progress bar and all dynamically updated page elements were getting updated just fine in Google Chrome, Firefox (4) and Safari (5, for Windows), but Internet Explorer wouldn&#8217;t update any page elements after the first ajax call was completed.</p>

<p>So, as you can imagine, we spent a good amount of time Googling to try to figure out what might be the problem with IE. Somehow, one of my co-workers stumbled on an article (I actually think it was a StackOverflow thread, but I can&#8217;t be sure) that mentioned that the issue might have something to do with browser caching. So, we gave it a shot and disabled caching on the controller action, and everything started working fine in IE. St00pid IE.</p>

<p>So, here&#8217;s what we ultimately ended up with for the working solution. I realize, (as it seems so many things I do) it kinda feels like a bit of a hack, but it works. As always, feedback is welcome&#8230;</p>

<pre><code>// BatchStatus.js
var pending = 0;
var percentComplete = 0;

$(function () {
  $('.status-messaging').hide();
  UpdateProgressBar(percentComplete);
  GetStatus(statusUrl);
});

function GetStatus(url) {
  $.ajax({
    type: 'GET',
    dataType: 'json',
    url: url,
    success: function (results) {
      percentComplete = results.PercentComplete;
      pending = results.Statuses['Pending'] != undefined ? results.Statuses['Pending'] : 0;
      UpdateProgressBar(percentComplete);
      UpdateCounts(results);
    },
    complete: function () { GetStatusComplete(); }
  });
}

function GetStatusComplete() {
  if (pending != 0 || percentComplete &lt; 100) {
    GetStatus(statusUrl);
  }
}

function UpdateProgressBar(percentComplete) {
  $('#progressbar').progressbar({
    value: percentComplete,
    complete: function () { $('.status-messaging').fadeIn(); }
  });
}

function UpdateCounts(results) {
  var currentPending = results.Statuses['Pending'] != undefined ? results.Statuses['Pending'] : 0;
  var currentComplete = results.Statuses['Succeeded'] != undefined ? results.Statuses['Succeeded'] : 0;
  var currentFailed = results.Statuses['Failed'] != undefined ? results.Statuses['Failed'] : 0;

  $('.attributes-table tr.status-normal td:nth-child(2)').html(currentPending);
  $('.attributes-table tr.status-completed td:nth-child(2)').html(currentComplete);
  $('.attributes-table tr.status-failed td:nth-child(2)').html(currentFailed);
}

// StatusController.cs
[HttpGet]
[NoCache]
public virtual JsonResult GetBatchStatus(long id)
{
    var result = new BatchStatus();
    var status = _batchServiceClient.GetBatchEditProgress(id);

    foreach (var batchResult in status)
        result.Statuses.Add(batchResult.Status, batchResult.Count);

    var total = result.Statuses.Sum(r =&gt; r.Value);

    if (result.Statuses.ContainsKey("Pending"))
        result.PercentComplete = Convert.ToInt32(System.Math.Round((float)((total - result.Statuses["Pending"]) * 100) / total));
    else
        result.PercentComplete = 100;
    return Json(result, JsonRequestBehavior.AllowGet);
}

// NoCacheAttribute.cs
public class NoCacheAttribute
    : ActionFilterAttribute, IActionFilter
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoServerCaching();
        filterContext.HttpContext.Response.Cache.SetNoStore();

        base.OnResultExecuting(filterContext);
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        base.OnResultExecuted(filterContext);
    }
}
</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=XgmTOIlk4Y0:WaO1fTBWLrM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=XgmTOIlk4Y0:WaO1fTBWLrM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=XgmTOIlk4Y0:WaO1fTBWLrM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=XgmTOIlk4Y0:WaO1fTBWLrM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=XgmTOIlk4Y0:WaO1fTBWLrM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=XgmTOIlk4Y0:WaO1fTBWLrM:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/XgmTOIlk4Y0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/04/jquery-ajax-calls-to-asp-net-mvc-controller-actions-and-internet-explorer-caching/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/04/jquery-ajax-calls-to-asp-net-mvc-controller-actions-and-internet-explorer-caching/</feedburner:origLink></item>
		<item>
		<title>Safari, the back button, and the jQuery ready function</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/vq5IUzWmKos/</link>
		<comments>http://bob.yexley.net/2011/03/safari-the-back-button-and-the-jquery-ready-function/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 20:57:49 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=89</guid>
		<description>Yesterday, our QA guy found a bug in our app that was specific to the Safari browser (he initially identified it on the Mac, but we were able to confirm that the same issue existed in the Windows version of Safari as well). The problem was, from a page in our web application, he clicked [...]</description>
			<content:encoded><![CDATA[<p>Yesterday, our QA guy found a bug in our app that was specific to the Safari browser (he initially identified it on the Mac, but we were able to confirm that the same issue existed in the Windows version of Safari as well). The problem was, from a page in our web application, he clicked the submit button to continue to the next page, and then from that page, he clicked the browsers back button, and didn&#8217;t get the expected results.</p>

<p>The reason he didn&#8217;t get the expected results, was because they were dependent on the firing of a <a href="http://api.jquery.com/ready/">jQuery ready function</a> on the page that wasn&#8217;t getting fired as a result of clicking the back button in Safari. After some searching, we found a <a href="http://stackoverflow.com/questions/158319/cross-browser-onload-event-and-the-back-button">StackOverflow discussion</a> about this very problem.</p>

<p>Based on that discussion, and some of the code samples there, the solution we came up with to solve the issue was this:</p>

<pre><code>$(window).unload(function () { });
</code></pre>

<p>Yeah, some might call it a hack. I prefer to call it a solution (the <em>only</em> solution we were able to find) to a problem with a specific browser. Effectively what this does is force Safari to execute the jQuery ready function when the page is loaded via clicking the back button. It solved our problem and fixed the bug. Anyone more familiar with this issue have a better solution?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=vq5IUzWmKos:Ha1bcNpb8aE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=vq5IUzWmKos:Ha1bcNpb8aE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=vq5IUzWmKos:Ha1bcNpb8aE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=vq5IUzWmKos:Ha1bcNpb8aE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=vq5IUzWmKos:Ha1bcNpb8aE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=vq5IUzWmKos:Ha1bcNpb8aE:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/vq5IUzWmKos" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/03/safari-the-back-button-and-the-jquery-ready-function/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/03/safari-the-back-button-and-the-jquery-ready-function/</feedburner:origLink></item>
		<item>
		<title>New site, new look</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/iNaDcO1GISE/</link>
		<comments>http://bob.yexley.net/2011/03/new-site-new-look/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 16:07:50 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=22</guid>
		<description>With a new site, must come a new look (at least for me anyway). I looked and looked all over the web, and couldn&amp;#8217;t find any WordPress themes that I really liked, so I decided I had to build my own. I typically only have an hour or two here and there to work on [...]</description>
			<content:encoded><![CDATA[<p>With a new site, must come a new look (at least for me anyway). I looked and looked all over the web, and couldn&#8217;t find any WordPress themes that I really liked, so I decided I had to build my own. I typically only have an hour or two here and there to work on stuff like that, so it has taken me longer than I would&#8217;ve preferred to get to this point, but I managed to come up with something anyway.</p>

<p>Please bear with me, as it&#8217;s definitely not all together yet. There are still a few things that aren&#8217;t quite working the way they ultimately will when I get the time to clean them up, and there are definitely some unfinished things (like the &#8220;About me&#8221; block in the sidebar, and the about page, etc), but I&#8217;ll be working on getting those completed soon.</p>

<p>In the meantime, please let me know if you find any problems with the site or anything that&#8217;s not working at all. Until I get my contact page up and working, you can contact me at [bob at yexley dot net]. Or, just leave a comment somewhere.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=iNaDcO1GISE:ay4gdd-9I4E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=iNaDcO1GISE:ay4gdd-9I4E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=iNaDcO1GISE:ay4gdd-9I4E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=iNaDcO1GISE:ay4gdd-9I4E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=iNaDcO1GISE:ay4gdd-9I4E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=iNaDcO1GISE:ay4gdd-9I4E:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/iNaDcO1GISE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/03/new-site-new-look/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/03/new-site-new-look/</feedburner:origLink></item>
		<item>
		<title>Dealing with sudden urges</title>
		<link>http://feedproxy.google.com/~r/ryexley/~3/Q24V6ycWyE4/</link>
		<comments>http://bob.yexley.net/2011/02/dealing-with-sudden-urges/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 21:42:12 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/?p=6</guid>
		<description>I&amp;#8217;ve been working on a lot of what I consider to be pretty interesting and fun stuff at work lately. Admittedly, there&amp;#8217;s at least some level of &amp;#8220;enterprisey&amp;#8221; annoyance built into it all, but underneath that, there&amp;#8217;s some really cool stuff. I have the good fortune of working for a company and management that believes [...]</description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a lot of what I consider to be pretty interesting and fun stuff at work lately. Admittedly, there&#8217;s at least some level of &#8220;enterprisey&#8221; annoyance built into it all, but underneath that, there&#8217;s some really cool stuff. I have the good fortune of <a href="http://scrippsnetworks.com" title="Yes, please...watch more HGTV, DiY, Travel Channel, etc">working for a company</a> and management that believes in the idea of keeping current in the technical landscape, so much of what we&#8217;re doing is stuff that a lot of people out there haven&#8217;t dealt with yet, and so we&#8217;re learning a lot as we go.</p>

<p>Considering all of that, I&#8217;ve had the urge to write some of it down in hopes that it might help others who might also be working through some of our same struggles. I&#8217;m also hoping I can get some feedback on all of it that I can learn more from as well.</p>

<p>The power in our neighborhood is unreliable at best, and after one-too-many power surges/outages (yes, I need another UPS), my home server finally died a few months ago. It&#8217;s taken me a while to get around to replacing that server as my hosting solution, but Ken at <a href="http://mpangohosting.com/">mPango hosting</a> has graciously taken good care of me in that area (if you need web hosting or <a href="http://mpangodev.com/">custom application development</a>, I highly recommend them). Thanks Ken.</p>

<p>So anyway, I guess I&#8217;m back. If you&#8217;re interested in .NET development (mostly web development in .NET) and related software engineering practices, and maybe even the occasional blurb about more personal things like my family and things I like to do (hunting, fishing, etc), stop back by every once in a while.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ryexley?a=Q24V6ycWyE4:YycIoHYl1Gw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ryexley?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=Q24V6ycWyE4:YycIoHYl1Gw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ryexley?i=Q24V6ycWyE4:YycIoHYl1Gw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=Q24V6ycWyE4:YycIoHYl1Gw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ryexley?i=Q24V6ycWyE4:YycIoHYl1Gw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ryexley?a=Q24V6ycWyE4:YycIoHYl1Gw:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/ryexley?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ryexley/~4/Q24V6ycWyE4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/2011/02/dealing-with-sudden-urges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bob.yexley.net/2011/02/dealing-with-sudden-urges/</feedburner:origLink></item>
	</channel>
</rss>

