<?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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
   <channel>
      <title>Improving Blogs</title>
      <description>A mashup of blogs by the employees of Improving Enterprises</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=wmOSkp7n3BGZxq0K8jxBKg</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=wmOSkp7n3BGZxq0K8jxBKg&amp;_render=rss&amp;page=2" />
      <pubDate>Sun, 03 Jun 2012 22:32:34 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ImprovingBlogs" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="improvingblogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">ImprovingBlogs</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
         <title>TSA: have you been harassed recently?</title>
         <link>http://door64.com/blog/n/42503</link>
         <description>&lt;p&gt;I just went to Colorado with my family for a Memorial Day weekend.  On the return trip, the TSA agent harassed me about the baby food I had in my carry-on for my infant daughter.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://door64.com/blog/n/42503"&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">42503 at http://door64.com</guid>
         <pubDate>Thu, 31 May 2012 19:55:51 +0000</pubDate>
      </item>
      <item>
         <title>TSA told me how to feed my baby</title>
         <link>http://softwareandotherthings.blogspot.com/2012/05/tsa-told-me-how-to-feed-my-baby.html</link>
         <description>&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/colsanders/3205190382/" title="In line at Seatac by Col.Sanders, on Flickr"&gt;&lt;img alt="In line at Seatac" height="180" src="http://farm4.staticflickr.com/3124/3205190382_7f870beaa1_m.jpg" width="240"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;center&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;I just had the unfortunate experience of going through airport security in Denver, CO, in order to catch a United flight to Houston.&amp;nbsp; I was traveling with my husband, and our 10 month old daughter.&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;We put all our liquids into checked luggage, and only had baby food and water in one carry-on bag, which we declared to TSA personnel. &amp;nbsp;The TSA agent, who never introduced herself, went through every tiny jar of baby food, and verified that it was indeed baby food. There were no questions of security whatsoever.&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Then the TSA dragon lady proceeded to harass me about &lt;a rel="nofollow" target="_blank" href="http://www.tsa.gov/travelers/airtravel/children/formula.shtm"&gt;the quality and quantity of the baby food&lt;/a&gt; I had with me.&amp;nbsp; She interrogated me why I had water for the baby but no formula, how long my flight was, and why I had so many tiny baby food jars.&amp;nbsp; Well, my baby is breastfed; she drinks plenty of water but no juice. &amp;nbsp;My daughter happens to be going through a growth spurt right now, which means she eats a lot.&amp;nbsp;&amp;nbsp; She is also a picky and unpredictable eater, just like lots of other babies and kids, so I like to have a variety of foods to offer her. &amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The TSA agent informed me that it was absolutely, horribly wrong of me to have several baby food jars in my carry-on, when food and water is available for purchase at the airport and occasionally on the plane. &amp;nbsp;I definitely do not feed burgers and pizza and candy to my 10month old, so the food available for purchase at the airport is not a substitute. I also do not like to give ice-cold bottled water or tap water to my baby, and prefer to carry my own one clean room-temperature water for her.&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;TSA lady took some time to confer with her manager about my baby food, and then told me that she’s not letting me take a bottle of water for the baby.&amp;nbsp; Luckily, I was allowed to take the baby food.&amp;nbsp; We barely made it to our flight.&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The country’ security has been served (NOT!).&amp;nbsp; &lt;a rel="nofollow" target="_blank" href="http://travel.usatoday.com/flights/post/2011/12/tsa-spending-legislation/587090/1http://travel.usatoday.com/flights/post/2011/12/tsa-spending-legislation/587090/1"&gt;TSA has spent a bit more of yours and mine tax money.&lt;/a&gt; &amp;nbsp;My baby proceeded to eat most of the baby food I was allowed to take with us, and a nice flight attendant, who is also regularly harassed by out-of-line TSA agents, gave us some room-temperature bottled water for the baby.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/jprusakova/7186236414/" title="P1070214 by janya, on Flickr"&gt;&lt;img alt="P1070214" height="240" src="http://farm8.staticflickr.com/7211/7186236414_7d5a8df58f_m.jpg" width="180"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7086785636466343363-358778953598116206?l=softwareandotherthings.blogspot.com' alt=''/&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-358778953598116206</guid>
         <pubDate>Thu, 31 May 2012 14:33:00 +0000</pubDate>
      </item>
      <item>
         <title>Windows Phone Bootcamp and Hackathon at Big (D) 2012</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/JaY4C1KKZ6c/</link>
         <description>&lt;p&gt;Want to learn what it takes to build a Windows Phone application?&lt;/p&gt;

&lt;p&gt;The Windows Phone Bootcamp and Hackathon is a &lt;strong&gt;free&lt;/strong&gt;, two-day event chock-full of everything you need to know to develop a Windows Phone application followed by an application building competition. Whether youre a seasoned veteran or just getting started with .NET development this event is for you!&lt;/p&gt;

&lt;h2&gt;Windows Phone Bootcamp&lt;/h2&gt;

&lt;p&gt;In this workshop youll learn what it takes to build a native Windows Phone application. Well talk about what the Windows Metro design language means to Windows Phone developers, discuss the basics of Silverlight development, a work together to build a complete Windows Phone app from the ground up from File &amp;gt; New Project all the way through app submission in the marketplace.&lt;/p&gt;

&lt;p&gt;Well also talk about some of the very popular Windows Phone Starter Kits and how you can utilize those to jump-start your application development and start building your application profile in the marketplace. Youll leave with at least one fully functional app that you can start customizing with your own data and submit to the marketplace for instant global reach.&lt;/p&gt;

&lt;h3&gt;Windows Phone Hackathon&lt;/h3&gt;

&lt;p&gt;Now that you know what goes into building a Windows Phone app, and have built your first application along with us, were going to turn you loose on the Marketplace in a Hackathon competition. At the end of the hackathon, well award two sets of prizes:&lt;/p&gt;

&lt;p&gt;A $500 &lt;strong&gt;CASH PRIZE&lt;/strong&gt; will be awarded to the applications voted HIGHEST QUALITY APPLICATION byall participants at the Hackathon. Well also draw for a &lt;strong&gt;STAR WARS XBOX + KINECT BUNDLE&lt;/strong&gt; among every participant in the Hackathon, with extra prize tickets awarded for every Windows Phone application submitted to the marketplace during the event. Additionally, well have periodic drawings throughout the event for various Xbox and PC games just to keep things hopping all weekend!&lt;/p&gt;

&lt;h3&gt;Register Today&lt;/h3&gt;

&lt;p&gt;Seating is limited, so you will want to register right away at: &lt;a rel="nofollow" target="_blank" href="http://bigd12hackathon.eventbrite.com/"&gt;http://bigd12hackathon.eventbrite.com/&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Required Prerequisites&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Windows Vista SP2 or later (Windows 7 preferred)

&lt;ul&gt;
&lt;li&gt;Windows XP is &lt;strong&gt;NOT SUPPORTED&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Running Windows in a VM is &lt;strong&gt;NOT SUPPORTED&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Running Windows via Parallels on a Mac is &lt;strong&gt;NOT SUPPORTED&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Running Windows via BootCamp works great!&lt;/li&gt;
&lt;li&gt;You can get a free, 30-day trial of Windows 7 from http://aka.ms/win7trial&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Windows Phone 7.1 SDK (http://aka.ms/wp7sdk)

&lt;ul&gt;
&lt;li&gt;Note that Visual Studio is NOT required before installing the tools, but if you have Visual Studio Pro or Ultimate, the Windows Phone tools will plug right in&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=JaY4C1KKZ6c:W1Q_gUIDXi8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=JaY4C1KKZ6c:W1Q_gUIDXi8:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=JaY4C1KKZ6c:W1Q_gUIDXi8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=JaY4C1KKZ6c:W1Q_gUIDXi8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=JaY4C1KKZ6c:W1Q_gUIDXi8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=JaY4C1KKZ6c:W1Q_gUIDXi8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=JaY4C1KKZ6c:W1Q_gUIDXi8:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/JaY4C1KKZ6c" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/windows-phone-bootcamp-and-hackathon-at-big-d-2012</guid>
         <pubDate>Mon, 28 May 2012 13:38:00 +0000</pubDate>
      </item>
      <item>
         <title>Lean Startup Snowflakes</title>
         <link>http://tastycupcakes.org/2012/05/lean-startup-snowflakes/</link>
         <description>Timing: 60 minutes (can be extended to 90 minutes by running more iterations). Setup/explanation takes 10 minutes; we&amp;#8217;ll run 4-5 iterations of [3-minutes of execution, 3-4 minutes debrief, and 3 minutes of planning]. Materials: Pretend money (unit bills [euro/dollar], approx 100 units); ream of paper; 2 pairs of scissors for every 4 participants; audible timer; [...]</description>
         <author>André Dhondt</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2135</guid>
         <pubDate>Wed, 16 May 2012 12:08:10 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote><p><strong>Timing</strong>: 60 minutes (can be extended to 90 minutes by running more iterations). Setup/explanation takes 10 minutes; we&#8217;ll run 4-5 iterations of [3-minutes of execution, 3-4 minutes debrief, and 3 minutes of planning].</p>
<div id="attachment_2140" class="wp-caption alignnone" style="width:310px;"><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2012/05/lean-startup-snowflakes/photo-20/"><img class="size-medium wp-image-2140" src="http://tastycupcakes.org/wp-content/uploads/2012/05/photo-20-300x225.jpg" alt="" width="300" height="225"/></a><p class="wp-caption-text">snowflakes</p></div>
<p><strong>Materials:</strong></p>
<p>Pretend money (unit bills [euro/dollar], approx 100 units); ream of paper; 2 pairs of scissors for every 4 participants; audible timer; markers and flipchart for each table or dry erase board; optional gum or tape to attach snowflakes to the wall</p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/?attachment_id=2144"><img class="alignnone size-thumbnail wp-image-2144" src="http://tastycupcakes.org/wp-content/uploads/2012/05/money-150x150.jpg" alt="" width="150" height="150"/></a></p>
<p>Room needs tables that seat 4-8 people; for each table set up 1 pair of scissors, $5, and 5 blank sheets of paper. In a prominent location, add a label that says &#8220;Paper: 2 for $1; Scissors: $3&#8243;. Set up a big visible chart for each team either on dry erase or flip chart; set up these column headers:</p>
<p>Iteration, Cash on hand; WIP; Scissors Count; Sales Qty; Paper on hand</p>
<p><strong>Instructions:</strong>If you&#8217;ve got more than 20 people, you&#8217;ll need an assistant&#8211;it&#8217;s fine to pull someone from the audience.  Start a 3-minute timer countdown and say: &#8220;Your objective is to run a profitable business by creating and selling paper snowflakes. I&#8217;ll demonstrate making one for you right now to prove it can be done in under 3 minutes. First we fold a triangle, then fold that in half and in half again to ensure we have at least 3 axes. We give the triangles a rounded edge as so; then cut out shapes along the folds, and unfold it to produce a snowflake like this. You&#8217;ll have a limited amount of time to cut&#8211;since we&#8217;re not really here to make snowflakes&#8211;we&#8217;re here to experiment with running a business. After a 3-minute iteration, we&#8217;ll do a de-brief, then you can have 3 minutes to coordinate with your team (sprint planning) followed by the next iteration. If you run out of supplies, you can buy them at any time from the front of the room here. Paper is 2 for $1; Scissors are $3.  Your table can self-organize around how to build the snowflakes. Any questions?&#8221; If they ask anything about acceptance criteria, say we can discuss when they come to sell you a snowflake.</p>
<p>Assistant/Customer Instructions (SPOILER&#8211;do not share this with audience):</p>
<p>Minimum acceptance criteria: snowflake must have a general sense of being round, it must have 3 axes of symmetry, and must have even, precise cuts. Torn paper, squares/rectangles, lots of overcuts on the snowflake, paper that the audience supplied&#8211;will all be rejected. Every time a snowflake is presented to you, give simple and direct feedback, e.g., I can&#8217;t buy this because these edges are torn&#8211;the quality isn&#8217;t high enough; this one doesn&#8217;t say &#8220;round&#8221; to me, can&#8217;t buy it; this is beautiful&#8211;I&#8217;ll give you $1 for it! Don&#8217;t haggle, just move on to the next vendor.</p>
<p>Valuation of snowflakes: Intricate, unique, symmetrical, beautiful snowflakes will be bought for $1-$5. In the first round, I never see anything worth more than $1. I rarely pay as much as $3. Encourage innovation by telling people &#8220;this is the first time I&#8217;ve seen a signed snowflake! $2!&#8221; or some such comment. Encourage intricacy&#8211;&#8221;wow&#8211;lots of space cut out, I like that&#8221;.  Size matters&#8211;small snowflakes often can be purchased only two for a dollar unless they&#8217;re particularly ornate. As you buy snowflakes, either attach them to the wall or arrange them on the table in order of low value to high value. We&#8217;re not stating it in an obvious way, but hint at the valuation scheme every once in a while by hovering a new snowflake over the spectrum and say that this one &#8220;fits right about here, ok, $2&#8243;.</p>
<p>Debrief Instructions:</p>
<p>Observe what the teams are doing, and help them think like a lean startup. Give only one hint per debrief, then let them try it out for the next sprint. Some teams ignore what you say; that&#8217;s fine. Hints are like the following:</p>
<p>Do you have to cut out a snowflake to get customer feedback?</p>
<p>Is your team making a profit?</p>
<p>Do you know what the customer wants?</p>
<p>Have you followed the customer around a bit to see what he wants to buy?</p>
<p>What happens when you make clone snowflakes?</p>
<p>Do you have to use the whole sheet of paper?</p>
<p>&nbsp;</p>
<p><strong>Learning Points:</strong></p>
<ul>
<li>customer discovery is a whole team activity (product owners can give developers a false sense of security)</li>
<li>you&#8217;ve got to get out of the building (or in this case, away from the table) to find out what customers are willing to pay for</li>
<li>delivery pressure with creative work makes people forget the big picture</li>
<li>business &amp; learning communities work better when we collaborate and share with more people (tables don&#8217;t have to remain isolated islands)</li>
<li>waste comes from the assumption that we&#8217;ve got to use the whole sheet, and that volume is more important than customer discovery</li>
<li>we don&#8217;t have to make anything at all to learn the acceptance criteria: simply go up to the facilitator and ask&#8211; what are you looking for? Response: beauty, symmetry, intricacy, round shape.</li>
<li>a good customers&#8217; time is limited and precious&#8211;use it wisely</li>
</ul>
</blockquote>]]></content:encoded>
      </item>
      <item>
         <title>Road Trip</title>
         <link>http://www.ruralsourceit.com/2012/05/14/road-trip/</link>
         <description>Imagine planning a long road trip, say from Texas to Alaska. Many Agile classes and presentations have used this as an analogy in exercises about adapting to change. The same analogy can demonstrate means of adaptation to using distributed resources &amp;#8230; &lt;a rel="nofollow" target="_blank" href="http://www.ruralsourceit.com/2012/05/14/road-trip/"&gt;Continue reading &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Ed Grannan</author>
         <guid isPermaLink="false">http://www.ruralsourceit.com/?p=549</guid>
         <pubDate>Mon, 14 May 2012 14:19:24 +0000</pubDate>
         <content:encoded><![CDATA[<p>Imagine planning a long road trip, say from Texas to Alaska. Many Agile classes and presentations have used this as an analogy in exercises about adapting to change. The same analogy can demonstrate means of adaptation to using distributed resources on a multi-disciplinary team.</p>
<p>In the common analogy the trip is planned in great detail: the route, stopping points (restaurants, hotels, etc.), expected speeds, arrival time, etc.  Shortly into the trip, a relative calls requesting a favor.  Since the relative is close to your planned route you make a detour to help.  Alternatively, a newly discovered point of interest causes an unplanned stop.</p>
<p>Both cases put the plan at risk. After the side trip or stop, you can try to somehow return to your original plan but that might involve risking speeding tickets, potential backtracking, etc. It is more flexible to fall back to the high-level details—major milestones—and re-plan the rest as the need arises. The analogy further suggests starting with a high-level plan and adding details when needed is generally more effective and less stressful.</p>
<p>This analogy can be extended to talk about distributed teams. Consider planning the same trip with two vehicles. To help make the point, imagine it is the 1960s. The two cars of travelers would need to stay pretty close to each other.  Significant contingency plans would have to be made in case of separation. If a change to the overall plan were needed, the car wanting to deviate would need to wait for or catch up to the other car to tell them about the change. Then they have to update the plans on where to meet should they get separated.</p>
<p>In the 1970s, the two vehicles would be able to communicate with each other using CB radios. Should one want to deviate or if they are separated, they could coordinate over the radio—as long as they stayed within a few miles of each other.  They would still need a backup plan should they get out of CB range.</p>
<p>Today, we have mobile phones and text messaging with which we can stay in near-constant communication.  The cars would not need to stay in proximity and could still get in touch at a moment&#8217;s notice to ensure they ended up in the same place at the end of each day&#8217;s travels.  Contingency plans would be made in case one or both car&#8217;s lost their phones or lost cell coverage.  However, effective communication would be possible at any other time.</p>
<p>Similar advances have been made which allow distributed development teams to communicate. Years ago it might not have been possible for geographically-diverse teams to communicate on a regular basis.  Later, communication was possible but cost prohibitive.  Today, there are numerous tools (cheap intra-U.S. phone rates, IM, texting, VOIP, etc.).  Some contingencies are made in case the normal means of communications are interrupted however, there is no reason why a distributed team cannot communicate effectively and often to ensure they arrive at the same destination day-over-day, at the end of the sprint, and at the end of a project.</p>
<p>&nbsp;</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Hiding buttons on the SharePoint ECB with JavaScript</title>
         <link>http://weblogs.asp.net/peterbrunone/archive/2012/05/10/hiding-buttons-on-the-ecb.aspx</link>
         <description>&lt;p&gt;Some of my best discoveries come from forum questions.  Not that I'm the first one to discover it, mind you -- I'm well aware that my wheel has probably been invented countless times -- but my mind grows best when I have to research a solution for someone else's problem (maybe that's why I like consulting).
&lt;/p&gt;

&lt;p&gt;Today's question was a simple one:  how do I remove the Edit Item and Workflows buttons from the ECB (Edit Control Block) in a particular list view?
If you're not familiar with the ECB for a list item, go to a list and select any list item; the List Item ECB will appear in the ribbon with commands like New Item, New Folder, etc.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Since a list view is just an aspx file, we can add some client-side code -- either directly in the page, or by way of the Content Editor Web Part.
Our code depends on jQuery, and looks like this:
&lt;/p&gt;

&lt;pre style="font-family:lucida console, courier new;font-size:12px;"&gt;$("td").hover(function() {
	hideEditAndWorkflows();
});
$("input").hover(function() {
	hideEditAndWorkflows();
});
function hideEditAndWorkflows() {
	$("#Ribbon&amp;#92;&amp;#92;.ListItem&amp;#92;&amp;#92;.Workflow").css("display", "none");
	$("#Ribbon&amp;#92;&amp;#92;.ListItem&amp;#92;&amp;#92;.Manage&amp;#92;&amp;#92;.EditProperties-Large").remove();
	}
&lt;/pre&gt;
&lt;p&gt;
If you're&amp;nbsp;a jQuery novice, you'll want to visit jQuery.com and get the latest version --&amp;nbsp;simply upload the necessary JS file to a library and add a script link to it in the page (there's a ton of reference material out there, including the excellent documentation at the jQuery site).&lt;/p&gt;&lt;p&gt;You may wonder at the&amp;nbsp;backslashes&amp;nbsp;we're using in the hideEditAndWorkflows function.&amp;nbsp; Since these element IDs contain special characters (normally the dot denotes a class in CSS selectors), we have to escape them so that we can pass them properly through the system.&lt;/p&gt;&lt;p&gt;Once you have this code in place, you'll see the Edit and Workflows buttons for a moment after clicking the first list item on the page; after that, they should disappear and be completely unavailable to your average user.&lt;/p&gt;&lt;p&gt;Of course, client-side techniques like this will only go so far; if someone is technically adept and has the ability to perform these operations, he or she can open up the developer console and find the missing pieces.&amp;nbsp; Be aware of this whenever you manipulate the SharePoint UI with JavaScript; while it's fun and easy, this technique should never be a substitute for proper governance.&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8462962" width="1" height="1"&gt;</description>
         <author>PeterBrunone</author>
         <guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8462962</guid>
         <pubDate>Thu, 10 May 2012 20:34:00 +0000</pubDate>
      </item>
      <item>
         <title>Ultimate Battle</title>
         <link>http://tastycupcakes.org/2012/05/ultimate-battle/</link>
         <description>Battle it out to find the ultimate technique for your group.  

Learn more about them on the way including their strengths, weaknesses and appropriate situations.</description>
         <author>Craig Brown</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2110</guid>
         <pubDate>Wed, 09 May 2012 10:45:35 +0000</pubDate>
         <content:encoded><![CDATA[<p>Approach</p>
<p>Teams will form and share their favourite techniques and methods, with examples of where they have been successful.</p>
<p>Teams will then pair off against other teams and present their favourite methods and challenge the other team with counter examples or questions.</p>
<p>The rest of the room vote on the winner. We repeat this in a series of four to five rounds until a winner is found.</p>
<p>Along the way we hear lots of examples of where analysts have deployed successful techniques and hear what situations they may not work in as well.</p>
<p>Learning Objectives<br />
This is a fun interactive way to review a broad range of methods and techniques, to talk about them, and hear stories of when they have been successful in the field.</p>
<p>You bring<br />
Your variety of experiences, an inquisitive mind and a pen and paper. Post it notes would also be good.</p>
<p>Equipment<br />
Pens, blue tac, index cards</p>
<p>Audience level<br />
All levels of experience are welcome. Diversity of the whole room is what is most important.</p>
<p>Mechanics<br />
Teams or individuals are briefed to write down their favourite method or technique in a specific domain (eg testing) and to talk about the technique&#8217;s strengths and how it is useful.</p>
<p>Then teams are paired off against each other and in turns have a short debate as to which technique is better. Give each side only 30 seconds or so to explain their technique to keep the adrenaline up and focus on.</p>
<p>Each team then gets to nominate one place where the technique will not work and then restate why their technique is superior.</p>
<p>All up the topic debate should last about 3 minutes.</p>
<p>Then you ask the audience to vote and the loser gets posted to the wall of death.</p>
<p>Round 1 continues until everyone has had a turn and half the cards are now on the wall.</p>
<p>Round 2 begins by having the opponents of the previous round now join together to form a larger team around the winner of their round. (up to team sizes of 4) and asked to briefly reiterate among themselevs the strengths and weaknesses of their technique.</p>
<p>Round 2 the proceeds in the same form as round 1 but with slightly more time to rebut and challenge to accommodate the larger team size. Target 4-5 minutes per round now.</p>
<p>The next round of losers are posted to a new section of wall (perhaps above round 1 losers in a pyramid structure.)</p>
<p>Round 3 and subsequent rounds follow the same pattern until you get to the last round and the ultimate battle is played.</p>
<p>With large groups you may pool them into multiple leagues and then bring them together for the last 2 rounds in a series of finals.</p>]]></content:encoded>
      </item>
      <item>
         <title>2011 Accomplishments: Weight Loss</title>
         <link>http://feedproxy.google.com/~r/chrisweldon/vCab/~3/CyB4osjNxnA/</link>
         <description>&lt;p&gt;&lt;img class="left" src="http://www.chrisweldon.net/images/posts/2012-05-08-weight-loss/milestone.jpg" title="Milestone"&gt;&lt;/p&gt;

&lt;p&gt;2011 was a marathon year for myself and &lt;a rel="nofollow" target="_blank" href="http://www.ladyalissiya.net/"&gt;Melissa&lt;/a&gt;, for many different reasons. While I always feel the need to revel in my accomplishments, I usually try not to gloat. Yet, looking at that year proved much more fruitful for us in many respects. Beyond all the wonderful comments, positive responses, and other benefits that came with these accomplishments, I feel it necessary to share how the year went in hopes that it may inspire others (including some close friends) to do the same for themselves. In this three part series, I&amp;#8217;d like to start with one of our most significant accomplishments: weight loss.&lt;/p&gt;




&lt;h2&gt;Weight Loss&lt;/h2&gt;


&lt;p&gt;Let&amp;#8217;s put it bluntly - I was &lt;strong&gt;fat&lt;/strong&gt;. Borderline obese, as a matter of fact. At my worst point in 2010, I weighed in at 217 pounds. At a height of 5&amp;#8217;10&amp;#8221;, that puts me at 31.1, fairly obese. Melissa and I realized that as Tristan grew and honed those energy vampire skills, we were going to have a difficult time keeping up. Furthermore, we had several honest discussions about how the future was going to affect us if we maintained our current lifestyle. Obesity is linked to numerous different health problems, of which the cost to resolve is &lt;strong&gt;not&lt;/strong&gt; cheap, and there is the increased risk of heart attack and/or stroke with obesity. After careful consideration, we came up with the following three goals which would shape our attitude for the remainder of the year:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have more energy to engage and play with Tristan regularly&lt;/li&gt;
&lt;li&gt;Increase self esteem&lt;/li&gt;
&lt;li&gt;Establish healthy lifestyle habits that will serve as a basis for lifelong change&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;span class='pullquote-right'&gt;&lt;/p&gt;

&lt;p&gt;The cornerstone of this being a success was diet. However, Melissa and I had tried &lt;em&gt;numerous&lt;/em&gt; diets over our relationship, all of which resulted in immediate weight loss, then a seemingly-never-ending plateau. So, after Melissa did further research, she came across the Candida Yeast Free Diet. The core concept of the diet is simple: eliminate candida yeasts which prohibit the body from being able to properly digest food and lose weight. The basics were simple: cut out sugar, caffiene, alcohol, dairy, gluten, and yeast. This was &lt;em&gt;quite&lt;/em&gt; a challenge, as we regularly consumed all of those ingredients. We recognized that sugar and alcohol were some of the biggest inhibitors of weight loss, so we were okay with cutting those. However, gluten, caffiene, and dairy were an integral part of our diets, past and present, and would be difficult.&lt;/p&gt;

&lt;p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Melissa came across a highly recommended book, the &lt;a rel="nofollow" target="_blank" href="http://amzn.com/0761527400"&gt;Complete Candida Yeast Guidebook&lt;/a&gt; that would provide us the necessary instructions, guidance, &lt;em&gt;and&lt;/em&gt; recipes to follow. The diet in the book was intriguing as it was borderline Vegan (though it did not restrict the consumption of meat). Melissa and I at that point had been eating strictly vegetarian, but had not made the plunge to go anywhere near Vegan - mainly because we liked our ice cream too much. :-P But, there were &lt;em&gt;plenty&lt;/em&gt; of recipes that included a variety of vegetables, nuts, seeds, and grains that made for a wholesome and wonderful diet.&lt;/p&gt;

&lt;p&gt;We took the pluge starting on January 19, 2011. I weighed in at 202.8 pounds. The changes were rather immediate, actually. The first was the fact that I wasn&amp;#8217;t starving myself: I was able to eat a &lt;em&gt;lot&lt;/em&gt; of food made through the recipes. Yet, since it was mostly veggies and gluten-free grains, my body processed it quite effectively. This resulted in the first immediate change: having more energy. For once, I was getting the right nutrients, in the right quantities, with foods that didn&amp;#8217;t send my body into a catatonic state. The weight started to trickle off at a rather steady pace: averaging about 0.25-0.5 pounds a day. But the interesting part: it didn&amp;#8217;t stop coming off that fast. Indeed, by March 1st, I weighed in at 185.6 pounds and was feeling fantastic!&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-05-08-weight-loss/weightloss-beforemarch.png" title="Weight Loss - Pre-March 2011"&gt;&lt;/p&gt;

&lt;p&gt;Melissa and I kept up the weight loss, and by the time I stopped tracking on June 24, 2011, I weighed in at 165.8 pounds, and when I checked again in August I had come down to my goal weight of 150 pounds! That made for 52.8 pounds lost when I started, and nearly 70 pounds lost from my peak weight in 2010!&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-05-08-weight-loss/weightloss-complete.png" title="Complete Weight Loss Tracking"&gt;&lt;/p&gt;

&lt;p&gt;Melissa had similar great success with this diet, and both of us were ecstatic to have managed to lose such a significant amount of weight. However, despite coming down to a healthy weight range, both myself and Melissa are still not at the ultimate point that we want to be. Both of us still have fat around our midsections that we would like to continue to lose. This has led to a partial obsession with wanting to continue leaning up. I&amp;#8217;ve recognized that at this point, the necessary training for me to help lose the fat around my midsection involves performance training which will increase muscle strength and tone, meaning I have to gauge my goals differently: body fat percentage as compared to weight. I&amp;#8217;ve already been undergoing strength training and am seeing some &lt;strong&gt;amazing&lt;/strong&gt; differences.&lt;/p&gt;

&lt;p&gt;Despite trying to apply perfectionism to my body, I wanted to do a side-by-side comparison to see what the weight loss really had done for me. I recognize that I&amp;#8217;ve lost a significant amount of weight, but given that it&amp;#8217;s been longer than a year since I&amp;#8217;ve been &amp;gt; 200 pounds, I had forgotten how bad it used to be, and how great I look (and feel) now. One of the first images I did the comparison of was of my face. The left image was my profile picture from when I worked at the College of Architecture (approx. 2009). The right image was from when I went to Chicago in fall 2011.&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://www.chrisweldon.net/images/posts/2012-05-08-weight-loss/face-before-and-after.png" title="Face Pictures - Before and After"&gt;&lt;/p&gt;

&lt;p&gt;As if that&amp;#8217;s enough of a comparison, let&amp;#8217;s look at a full body image. The following image &lt;strong&gt;really&lt;/strong&gt; shows the &lt;strong&gt;significant&lt;/strong&gt; contrast from December 2010 (left image) to April 2012 (right image).&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://www.chrisweldon.net/images/posts/2012-05-08-weight-loss/body-before-and-after.png" title="Body Pictures - Before and After"&gt;&lt;/p&gt;

&lt;h2&gt;Special Thanks&lt;/h2&gt;


&lt;p&gt;I wouldn&amp;#8217;t have been able to lose all of this weight if it weren&amp;#8217;t for everyone in my life. My coworkers, my friends, and my family were all strong supporters of my weight loss goals, especially when they saw the weight practically melting off my body. But, most of all, the significant amount of credit goes out to my wife, Melissa. She championed the weight loss initiative, did all the leg work to research and find the diet, but most importantly, spent &lt;em&gt;countless&lt;/em&gt; hours slaving in the kitchen cooking these meals for our diet. I kid you not: she spent regularly about 4-6 hours in the kitchen cooking our meals. Without her passion for loosing weight, without her passion to see us succeed, and without her sweet words of encouragement, I wouldn&amp;#8217;t have been able to succeed to the degree that I have. Thank you, Nis. I love you!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/chrisweldon/vCab/~4/CyB4osjNxnA" height="1" width="1"/&gt;</description>
         <author>Chris Weldon</author>
         <guid isPermaLink="false">http://www.chrisweldon.net/blog/2012/05/08/weight-loss</guid>
         <pubDate>Tue, 08 May 2012 21:02:00 +0000</pubDate>
      </item>
      <item>
         <title>Error when creating a site from a custom template:  "A duplicate name 'FieldName' was found"</title>
         <link>http://weblogs.asp.net/peterbrunone/archive/2012/05/08/error-when-creating-a-site-from-a-custom-template-quot-a-duplicate-name-fieldname-was-found-quot.aspx</link>
         <description>This happened to me in a client's WSS3 environment, but it seems to apply to 2010 as well.  I had a site template created in one environment, but upon moving it to another, the Create Site operation resulted in a neat little error, complete with stack trace:  "A duplicate name 'YourField' was found".

Upon investigating, I found that one of the lists in the newly-created site did indeed have duplicate fields.  What was odd in this case was that the the list was based on a content type, and only one of the duplicates came from said content type.  I deleted the extra fields, re-saved the template in the new environment, and created again -- only to have similar results.

Several forum posts recommend cutting open the template on your local machine, editing the XML, and rebuilding the solution CAB, but in my case, all it took was a quick "Delete list" followed by re-creating it and re-adding the content type.  Save as template again, and this time -- instant site creation satisfaction.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8453641" width="1" height="1"&gt;</description>
         <author>PeterBrunone</author>
         <guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8453641</guid>
         <pubDate>Tue, 08 May 2012 21:01:00 +0000</pubDate>
      </item>
      <item>
         <title>Ep. 38 – UX + Agile = Love</title>
         <link>http://improvingpodcasts.com/2012/05/ep-38-ux-agile-love/</link>
         <description>Jef Newsom, Travis Isaacs, David Belcher, and David O&amp;#8217;Hara presented UX + Agile = Love at AgileDotNet &amp;#8211; Dallas 2012. Moderated by Dustin Askins, the team discussed integrating user experience practices into agile projects.</description>
         <author>Chris</author>
         <guid isPermaLink="false">http://improvingpodcasts.com/?p=247</guid>
         <pubDate>Fri, 04 May 2012 14:56:21 +0000</pubDate>
         <content:encoded><![CDATA[<p>Jef Newsom, Travis Isaacs, David Belcher, and David O&#8217;Hara presented UX + Agile = Love at AgileDotNet &#8211; Dallas 2012. Moderated by Dustin Askins, the team discussed integrating user experience practices into agile projects.</p>]]></content:encoded>
         <enclosure length="27349633" type="audio/mpeg" url="http://improvingpodcasts.com/podcasts/038_UXAgileLove.mp3" />
      </item>
      <item>
         <title>CodeRush Vs Resharper–Week 3</title>
         <link>http://www.devlinliles.com/post/CodeRush-Vs-Resharpere28093Week-3.aspx</link>
         <description>&lt;p&gt;So I have been trying to give each tool a look to make sure that I am using the best for me. So here is the meat.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is 3 weeks in.&lt;/p&gt;  &lt;p&gt;Responsiveness – My computer overall is slower running CodeRush, but the memory usage is lower. I am sure this is just a lack of configuration understanding on my part, but the CodeRush option screen is like a monkey looking at the shuttle control board right now. So many knobs and buttons for tweaking.&lt;/p&gt;  &lt;p&gt;Productive help – I am used to resharper so I keep missing things like the solution insert with Alt-Ins or just using the tool instead of the mix of Visual studio commands and CodeRush. The one that bugs me the most is the reference and using import. I used to use Alt.Enter Enter and be done now it is manually add reference, use the Ctrl-. to add the using. I have to constantly switch between the Ctrl-~ and Ctrl-. for commands. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE – Rory Becker just pointed me to the ImportNamespace plugin and yep, That solved this one, but also added a section&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Extensibility – The plugin ecosystem around CodeRush is much more prolific than that around resharper. I’ll have to see if most of my problems have already been solved.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Templating – CodeRush wins hands down with context aware templating. The templates are great, and they speed things up. I extensively used Resharper templates so the one big win here is having a single template that reacts differently based on references and language. This is incredibly helpful.&lt;/p&gt;  &lt;p&gt;Overall – Using CodeRush still feels like a chore right now, but I am going to give it a couple more weeks and see if it grows on me. The visual stuff is mad distracting and the next thing I will be hunting how to turn off. My Resharper bias comes from 6 years of heavy power using, so I don’t want to call this one just yet.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;P.S. Customer Service – CodeRush wins this hands down. Better website for product and license management, built in license management just with a login, and they responded to a bug with a fixed build within 24 hours. Resharper however took &lt;strong&gt;UPDATE&lt;/strong&gt; &lt;strong&gt;8&lt;/strong&gt; &lt;strong&gt;not &lt;strike&gt;13&lt;/strike&gt;&lt;/strong&gt; days to get my license key to me after a hard drive crash. &lt;strong&gt;( This was partly my fault for not emailling sooner and trying to use the phone contact. Once I emailed they turned it around in 5 minutes). I emailed again a bit later to get my licenses for the other products I use and got them back in 7 days (March 21st to 28th). &lt;/strong&gt;CodeRush is winning this battle, and this is the main reason I am still using it.&lt;/p&gt;</description>
         <author>Devlin</author>
         <guid isPermaLink="false">http://www.devlinliles.com/post.aspx?id=72e6ce39-a87f-435e-afab-a781e9143860</guid>
         <pubDate>Wed, 02 May 2012 17:54:42 +0000</pubDate>
      </item>
      <item>
         <title>Remote Server Admin Tools</title>
         <link>http://tmgirvin.com/2012/04/21/remote-server-admin-tools/</link>
         <description>Where have you been all my life?!?!?&amp;#160; You can tell I’m not a real IT Pro because I’m just discovering the RAST package. Here is RSAT for Windows 7 and RSAT for Windows 8 Preview.&amp;#160; Now I can manage Hyper-V from my desktop instead of logging into the server or even a dedicated admin console [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&amp;#038;blog=14416035&amp;#038;post=40&amp;#038;subd=tmgirvin&amp;#038;ref=&amp;#038;feed=1" width="1" height="1"/&gt;</description>
         <author>tmgirvin</author>
         <guid isPermaLink="false">https://tmgirvin.wordpress.com/?p=40</guid>
         <pubDate>Sat, 21 Apr 2012 15:27:24 +0000</pubDate>
         <content:encoded><![CDATA[<p>Where have you been all my life?!?!?&#160; You can tell I’m not a real IT Pro because I’m just discovering the RAST package.</p>
<p>Here is <a rel="nofollow" target="_blank" href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=7887">RSAT for Windows 7</a> and <a rel="nofollow" target="_blank" href="http://www.microsoft.com/download/en/details.aspx?id=28972">RSAT for Windows 8 Preview</a>.&#160; Now I can manage Hyper-V from my desktop instead of logging into the server or even a dedicated admin console machine.</p>
<br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tmgirvin.wordpress.com/40/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tmgirvin.wordpress.com/40/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gofacebook/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tmgirvin.wordpress.com/40/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gotwitter/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tmgirvin.wordpress.com/40/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tmgirvin.wordpress.com/40/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tmgirvin.wordpress.com/40/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/tmgirvin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tmgirvin.wordpress.com/40/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&#038;blog=14416035&#038;post=40&#038;subd=tmgirvin&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="http://1.gravatar.com/avatar/f6f9794f022869f90db72ef2dc6ee0cc?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">tmgirvin</media:title>
         </media:content>
         <category>Links</category>
      </item>
      <item>
         <title>Tasty Estimation</title>
         <link>http://tastycupcakes.org/2012/04/tasty-estimation/</link>
         <description>Timing: 30-60 min. depending on the number of stories Goal: to practice the relative estimation technique by comparing user stories Preparation: Backlog items written or printed on index cards Items should describe activities, which are well known to the team members and can be quickly estimated. You can play the game either with the real backlog [...]</description>
         <author>Robert Batusek</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2085</guid>
         <pubDate>Thu, 19 Apr 2012 20:39:11 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>Timing:</strong> 30-60 min. depending on the number of stories</p>
<p><strong>Goal:</strong> to practice the relative estimation technique by comparing user stories</p>
<p><strong>Preparation:</strong></p>
<ul>
<li>Backlog items written or printed on index cards</li>
<li>Items should describe activities, which are well known to the team members and can be quickly estimated. You can play the game either with the real backlog or you can use one of the tasty backlogs provided below.</li>
<li>About 5-7 index cards of a different color to mark columns.</li>
<li>You need a room with a table big enough to fit all team members and all cards</li>
</ul>
<p><strong>Execution/Directions:</strong></p>
<ul>
<li>Put the cards on one deck and mix them</li>
<li>The first team member takes the card and puts it on an arbitrary place on a table</li>
<li>The next team member takes the next card. If it seems to him <strong>smaller</strong> that the first one, he puts it <strong>left</strong> to the first card. If it seems to him <strong>bigger</strong> that the first one, he puts it <strong>right </strong>to the first card. If it seems to him of roughly the same size, he puts it <strong>under</strong> the first card.</li>
<li>The next team member can
<ul>
<li>Take the next card from the deck and do the same decision as the previous team member.</li>
<li>Move and card lying on the table to a different column (with appropriate reasoning).</li>
</ul>
</li>
<li>The other team members continue these steps until:
<ul>
<li>They run out of cards and</li>
<li>All team members are satisfied with the placement of the cards</li>
</ul>
</li>
<li>At the end of the game it is possible to assign labels for the columns, e.g. XS, S, M, L, XL, XXL or Fibonacci numbers.</li>
</ul>
<p><strong>Discussion:</strong></p>
<ul>
<li>What are the advantages and disadvantages of this estimation technique?</li>
<li>Do you know any other estimation techniques?</li>
<li>Is an estimation uncertainty taken into account?</li>
<li>What is your personal experience with estimation?</li>
<li>What happened to backlog items with insufficient amount of information?</li>
</ul>
<div>Attached are two sample sets of typical meals &#8211; <a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2012/04/tasty-estimation/tasty_estimation-international_meals/">Tasty_estimation-international_meals</a> containing international (mostly European) meals and <a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2012/04/tasty-estimation/tasty_estimation-czech_meals/">Tasty_estimation-Czech_meals</a> containing typical Czech meals. The size of each item is the complexity of the cooking process. The sets contain meals of various types: easy, difficult, well-known, ambiguous, with imcomplete information, the meals you have probably never heard of, etc. Just like a typical backlog.</div>]]></content:encoded>
      </item>
      <item>
         <title>SharePoint Saturday Houston:  9 days and counting</title>
         <link>http://weblogs.asp.net/peterbrunone/archive/2012/04/18/sharepoint-saturday-houston-9-days-and-counting.aspx</link>
         <description>&lt;p&gt;In just over a week, I'll be speaking at &lt;a rel="nofollow" target="_blank" href="http://sharepointsaturday.org/houston/default.aspx"&gt;SharePoint Saturday Houston&lt;/a&gt;. My topic will be Manipulating SharePoint with Client-Side JavaScript; we'll address client-side coding as a whole, look at the Client-Side Object Model, and then dive into a working sample app using the CSOM and jQuery.&amp;nbsp; Come see how easy it is to develop complex solutions for SharePoint 2010 without ever opening Visual Studio.&lt;/p&gt;&lt;p&gt;The event is already chock-full of high-profile speakers and generous sponsors (and a few guys like me, with a session right after the huge gourmet lunch) -- and with just over 100 seats left, you'll want to register right away.&amp;nbsp; Hope to see you there!&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8395902" width="1" height="1"&gt;</description>
         <author>PeterBrunone</author>
         <guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8395902</guid>
         <pubDate>Wed, 18 Apr 2012 19:05:00 +0000</pubDate>
      </item>
      <item>
         <title>Presentation - WCF Topics</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/Af6byHw12Qs/</link>
         <description>&lt;p&gt;This morning I had the pleasure of review the basics of WCF with a group from Exxon.  As promised to them I&amp;#8217;ve made all code and presentations from that talk available at &lt;a rel="nofollow" target="_blank" href="https://github.com/trayburn/Presentations.WcfTopics"&gt;GitHub&lt;/a&gt;.  Thank you all for attending, and again if you have any questions please feel free to reach out to me at Tim@TimRayburn.net.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=Af6byHw12Qs:lYaQboyaITw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=Af6byHw12Qs:lYaQboyaITw:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=Af6byHw12Qs:lYaQboyaITw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=Af6byHw12Qs:lYaQboyaITw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=Af6byHw12Qs:lYaQboyaITw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=Af6byHw12Qs:lYaQboyaITw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=Af6byHw12Qs:lYaQboyaITw:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/Af6byHw12Qs" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/presentation-wcf-topics</guid>
         <pubDate>Tue, 17 Apr 2012 17:05:00 +0000</pubDate>
      </item>
      <item>
         <title>What Recruiters Look At During The 6 Seconds They Spend On Your Resume</title>
         <link>http://brandonbarber.net/archives/308</link>
         <description>Taken from Business Insider &amp;#8212; Although we may never know why we didn&amp;#8217;t get chosen for a job interview, a recent study is shedding some light on recruiters&amp;#8217; decision-making behavior. According to TheLadders research, recruiters spend an average of &amp;#8220;six seconds before they make the initial &amp;#8216;fit or no fit&amp;#8217; decision&amp;#8221; on candidates. The study [...]</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=308</guid>
         <pubDate>Tue, 17 Apr 2012 16:47:43 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://www.businessinsider.com/heres-what-recruiters-look-at-during-the-6-seconds-they-spend-on-your-resume-2012-4?utm_source=twbutton&amp;utm_medium=social&amp;utm_campaign=careers">Taken from Business Insider &#8212; </a></p>
<p>Although we may never know why we didn&#8217;t get chosen for a job interview, a recent study is shedding some light on recruiters&#8217; decision-making behavior. According to TheLadders research, recruiters spend an average of &#8220;six seconds before they make the initial &#8216;fit or no fit&#8217; decision&#8221; on candidates. The study used a scientific technique called “eye tracking” on 30 professional recruiters and examined their eye movements during a 10-week period to &#8220;record and analyze where and how long someone focuses when digesting a piece of information or completing a task.&#8221; In the short time that they spend with your resume, the study showed recruiters will look at your name, current title and company, current position start and end dates, previous title and company, previous position start and end dates, and education. The two resumes below include a heat map of recruiters&#8217; eye movements. The one on the right was looked at more thoroughly than the one of the left because of its clear and concise format: TheLadders With such critical time constraints, you should make it easier for recruiters to find pertinent information by creating a resume with a clear visual hierarchy and don&#8217;t include distracting visuals since &#8220;such visual elements reduced recruiters’ analytical capability and hampered decision-making&#8221; and kept them from &#8220;locating the most relevant information, like skills and experience.&#8221;</p>
<p><a rel="nofollow" target="_blank" href="http://www.businessinsider.com/heres-what-recruiters-look-at-during-the-6-seconds-they-spend-on-your-resume-2012-4?utm_source=twbutton&amp;utm_medium=social&amp;utm_campaign=careers">Read more here</a></p>
<div><img src="http://static5.businessinsider.com/image/4f8463416bb3f70851000000/recruiters-resume.jpg" alt="recruiters resume" width="437" height="588" border="0"/></div>
<p><a rel="nofollow" target="_blank" href="http://cdn.theladders.net/static/images/basicSite/pdfs/TheLadders-EyeTracking-StudyB.pdf">TheLadders</a></p>
<p>&nbsp;</p>]]></content:encoded>
      </item>
      <item>
         <title>Global viewpoints: bright lines in the sand</title>
         <link>http://www.ruralsourceit.com/2012/04/16/global-viewpoints-bright-lines-in-the-sand/</link>
         <description>Outsourcing is risky business. A large part of creating a company is building a set of values, organizing a team around a cause, creating and sharing a vibe with like-minded people. Hiring an outside vendor to do part of your &amp;#8230; &lt;a rel="nofollow" target="_blank" href="http://www.ruralsourceit.com/2012/04/16/global-viewpoints-bright-lines-in-the-sand/"&gt;Continue reading &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">http://www.ruralsourceit.com/?p=528</guid>
         <pubDate>Mon, 16 Apr 2012 14:05:44 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" title="Flags at the UN by WorldIslandInfo.com, on Flickr" target="_blank" href="http://www.flickr.com/photos/76074333@N00/383337161/"><img style="margin:9px;padding:9px;" src="http://farm1.staticflickr.com/182/383337161_2cf2d2290f.jpg" alt="Flags at the UN" width="300" align="left"/></a></p>
<p>Outsourcing is risky business.  A large part of creating a company is building a set of values, organizing a team around a cause, creating and sharing a vibe with like-minded people.  Hiring an outside vendor to do part of your company&#8217;s work is about sharing values and being on the same team with the people outside.  Trying to share a vibe with people from afar, who belong to different cultures, can be extremely difficult and often leads to lots of great anecdotes, and many failed projects.</p>
<p>I recently came across <a rel="nofollow" target="_blank" href="http://karial.livejournal.com/268764.html">an interesting blog post</a> by Inna Kuznetsova, a CCO of a truly global company <a rel="nofollow" target="_blank" href="http://www.cevalogistics.com/">CEVA Logistics</a>. Inna is no stranger to working with people from different cultures: she first made a career at IBM, where she originally joined Russian IBM headquarters, and later moved to a US-based post. Inna shared a few insights she&#8217;s discussed with a friend, an expert on understanding different cultures, on doing business in a global community:</p>
<ul>
<li>In some cultures, including American, once goals and milestones are set, the vendor is responsible for the execution. The customer expects to be notified of problems, and perceives lack of news as good news.</li>
<li>In many other cultures, in particular, in India, the vendor expects the client to maintain tight control of the project. If the customer isn&#8217;t closely involved throughout the project, the vendor is genuinely surprised to learn at the end that the client has expected the work to follow agreed-upon schedule and quality standards, and is upset now.</li>
<li>In Russia, a good boss is expected to take care of his people, both professionally and personally.  In America, there are rules of the game which bosses and their subordinates follow: good corporate things happen to those who do their jobs well.  In Holland, people want to feel equal across the corporate hierarchy, and thus the boss is expected to make suggestions, rather than final decisions, to the team.</li>
</ul>
<p><a rel="nofollow" title="Danger of being blown by Matt Drobnik, on Flickr" target="_blank" href="http://www.flickr.com/photos/drobnikm/416480841/"><img style="margin:9px;padding:9px;" src="http://farm1.staticflickr.com/164/416480841_032339c7b5.jpg" alt="Danger of being blown" width="295" align="left"/></a></p>
<p>When building a truly global business, learning and taking into account these differences is vital.  However, cost savings on a typical software project for the American market rarely justifies the risk and the difficulties of managing a global, multicultural team.</p>
<p>Outsourcing across the globe  brings drastically different expectations and experiences to the project, and almost never allows for the team members to build close enough relationships to discover and mitigate their differences for the benefit of the project.</p>
<p>Hiring a local vendor doesn&#8217;t guarantee success of a project, but it does make the project much less vulnerable to adverse business conditions.</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>jQuery File Uploader, Cross Domain Requests, and ASHX Web Services</title>
         <link>http://feedproxy.google.com/~r/chrisweldon/vCab/~3/FDbaU6HBFJ4/</link>
         <description>&lt;p&gt;Last night I spent all evening (and well into the night) working on a fix for a customer. This customer was using the &lt;a rel="nofollow" target="_blank" href="https://github.com/blueimp/jQuery-File-Upload/"&gt;jQuery File Uploader&lt;/a&gt; control to upload pictures to their remote server that&amp;#8217;s associated with a customer&amp;#8217;s order. The upload control was not reflecting the upload status in the built-in progress-bar. It was immediately advancing to 100% and holding until the upload actually completed. After which point the user would be redirected to the appropriate destination page. This left the potential for users to become confused as to whether the browser was &amp;#8220;locked up&amp;#8221; and start clicking around and disrupting the upload process. The request was simple: fix the control to reflect the actual upload progress. What I encountered while trying to fix this solution was &lt;strong&gt;anything but simple&lt;/strong&gt;.&lt;/p&gt;






&lt;h2&gt;Cross-Domain Requests and JavaScript&lt;/h2&gt;


&lt;p&gt;This upload problem was complicated slightly by the fact that we are uploading files on a different domain from the site being hosted (e.g. the customer-facing web site is on www.imagehost.com and the upload host is photos.imagehost.com). The reason for this is the server that holds the files and needs to be accessed by employees is different from the server hosting the primary customer-facing web site. The customer was not interested in setting up a web service on the customer-facing web site to act as a proxy to the destination web service, so some work had to be done to investigate how to handle cross-domain requests with JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;span class='pullquote-right'&gt;&lt;/p&gt;

&lt;p&gt;All modern browsers implement the &lt;a rel="nofollow" target="_blank" href="https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript"&gt;Same Origin Policy&lt;/a&gt;. This policy was introduced as a means to help secure browsers by preventing content sharing by unrelated sites in order to maintain confidentiality and prevent loss of data. In this context, this means that my standard &lt;code&gt;XmlHttpRequests&lt;/code&gt; that are used to invoke the AJAX calls to my remote web service will be blocked by the browser because the destination origin does not match the source web site origin.&lt;/p&gt;

&lt;p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;There have been two attempts to circumvent this problem: &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing"&gt;Cross-Origin Resource Sharing (CORS)&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/JSONP"&gt;JSONP&lt;/a&gt;. There are legitimate use cases (such as the one I&amp;#8217;m dealing with) where submitting requests to a remote domain without proxying is preferred. Think about how web mashups work - they involve a &lt;strong&gt;huge&lt;/strong&gt; amount of cross-site requests, so being able to invoke remote services &lt;strong&gt;without&lt;/strong&gt; frames is essential.&lt;/p&gt;

&lt;p&gt;The problem with JSONP is that it only supports the &lt;code&gt;GET&lt;/code&gt; method and does &lt;strong&gt;not&lt;/strong&gt; use &lt;code&gt;XmlHttpRequest&lt;/code&gt;. However, CORS is &lt;strong&gt;not&lt;/strong&gt; supported in legacy browsers, whereas JSONP does work with legacy browsers. Ultimately, I feel the level of complexity of this upload control necessitates a modern browser that supports CORS. Using &lt;code&gt;GET&lt;/code&gt; to upload an image is not RESTful. By that same argument, there&amp;#8217;s enough other JavaScript on this web site that legacy browsers that don&amp;#8217;t support CORS will likely not behave correctly anyways. In short, I have no problem telling customers of this site to use a more modern browser if they wish to use the site.&lt;/p&gt;

&lt;p&gt;In order to support CORS, your web service has to send back certain HTTP headers that indicate to the browser what methods, origins, and other security policies are allowed by the web service. Without going into too much detail, i suggest you read a &lt;em&gt;much&lt;/em&gt; better article on CORS on the &lt;a rel="nofollow" target="_blank" href="https://developer.mozilla.org/en/http_access_control"&gt;Mozilla&lt;/a&gt; site.&lt;/p&gt;

&lt;p&gt;Thankfully, the &lt;a rel="nofollow" target="_blank" href="http://github.com/blueimp/jQuery-File-Upload"&gt;jQuery File Uploader&lt;/a&gt; control has does support cross-domain requests in more ways than one. In fact, the &lt;a rel="nofollow" target="_blank" href="http://blueimp.github.com/jQuery-File-Upload/"&gt;demo&lt;/a&gt; they have posted on the site is issuing a cross-domain request from blueimp.github.com to jquery-file-upload.appspot.com. The default method is via an &lt;code&gt;XmlHttpRequest&lt;/code&gt; (XHR) to a CORS-enabled web service. The alternate method is to use an iFrame transport method. According to their documentation, this is used for browsers like Internet Explorer and Opera which do not yet support XHR file uploads. However, you can configure the file upload control to &lt;strong&gt;force&lt;/strong&gt; iFrame transport by using the &lt;code&gt;forceIframeTransport&lt;/code&gt; option.&lt;/p&gt;

&lt;p&gt;This is what the previous developer had done. He was forcing the iFrame transport because he had not enabled the web service to send the CORS-required headers to allow uploads via XHR.&lt;/p&gt;

&lt;h3&gt;Core of the Problem&lt;/h3&gt;


&lt;p&gt;I started to surmise that using the iFrame transport method instead of XHR could be causing the problem with the upload progress bar. I quickly tested this on the &lt;a rel="nofollow" target="_blank" href="http://blueimp.github.com/jQuery-File-Upload/"&gt;Demo&lt;/a&gt; page by issuing the following in my JavaScript console:&lt;/p&gt;

&lt;span&gt;force-iframe-transport.js &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='js'&gt;&lt;span class='line'&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#fileupload&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;fileupload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;option&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="nx"&gt;forceIframeTransport&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 


&lt;p&gt;I then attempted to upload a file that would take a few seconds to upload (~5MB in size). As expected, the progress bar zipped to 100% and the page hung for several seconds while the upload finished in the background. When I reloaded the page and uploaded the same file without issuing the above JavaScript, the progress bar advanced as I would expect it to, and when it reached 100% the &lt;code&gt;done&lt;/code&gt; action fired.&lt;/p&gt;

&lt;p&gt;&lt;span class='pullquote-left'&gt;&lt;/p&gt;

&lt;p&gt;This comes back to the original problem with cross-domain requests with JavaScript. Effectively, my iFrame request is for a different origin than my source web site. The ability for the JavaScript driving the file upload control to monitor the progress of the upload in an iFrame is blocked by the browser in adherence to the Same Origin Policy. Therefore, the best the control can do is kick off the iFrame request in an asynchronous fashion, update the progress bar to 100%, and wait for the iFrame to finish loading. Thanks go to my good friend &lt;a rel="nofollow" target="_blank" href="http://dataplex.org"&gt;Ben Floyd&lt;/a&gt; for reminding me of this.&lt;/p&gt;

&lt;p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I opted to drop the &lt;code&gt;forceIframeTransport&lt;/code&gt; option and try to get things working using XHR.&lt;/p&gt;

&lt;h3&gt;Sending the Headers via an ASHX Service&lt;/h3&gt;


&lt;p&gt;As mentioned previously, the original developer spun up an ASHX service to handle this request. I feel that since this is a .Net 4.0 project we could have created an &lt;a rel="nofollow" target="_blank" href="http://www.asp.net/web-api"&gt;ASP.NET Web API&lt;/a&gt; project since we&amp;#8217;re dealing with JSON requests, but I&amp;#8217;ll assume that the developer is unfamiliar with the ease of those types of projects and reverted to what he knew. Fair enough argument.&lt;/p&gt;

&lt;p&gt;The service handler is fairly simple. Thankfully, the developer separated the front-end logic (of the service) from the business processing logic, albeit into a static method. &lt;em&gt;&lt;em&gt;grumbles&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;span&gt;UploadManagerHandler.ashx.cs &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;span class='line-number'&gt;16&lt;/span&gt;
&lt;span class='line-number'&gt;17&lt;/span&gt;
&lt;span class='line-number'&gt;18&lt;/span&gt;
&lt;span class='line-number'&gt;19&lt;/span&gt;
&lt;span class='line-number'&gt;20&lt;/span&gt;
&lt;span class='line-number'&gt;21&lt;/span&gt;
&lt;span class='line-number'&gt;22&lt;/span&gt;
&lt;span class='line-number'&gt;23&lt;/span&gt;
&lt;span class='line-number'&gt;24&lt;/span&gt;
&lt;span class='line-number'&gt;25&lt;/span&gt;
&lt;span class='line-number'&gt;26&lt;/span&gt;
&lt;span class='line-number'&gt;27&lt;/span&gt;
&lt;span class='line-number'&gt;28&lt;/span&gt;
&lt;span class='line-number'&gt;29&lt;/span&gt;
&lt;span class='line-number'&gt;30&lt;/span&gt;
&lt;span class='line-number'&gt;31&lt;/span&gt;
&lt;span class='line-number'&gt;32&lt;/span&gt;
&lt;span class='line-number'&gt;33&lt;/span&gt;
&lt;span class='line-number'&gt;34&lt;/span&gt;
&lt;span class='line-number'&gt;35&lt;/span&gt;
&lt;span class='line-number'&gt;36&lt;/span&gt;
&lt;span class='line-number'&gt;37&lt;/span&gt;
&lt;span class='line-number'&gt;38&lt;/span&gt;
&lt;span class='line-number'&gt;39&lt;/span&gt;
&lt;span class='line-number'&gt;40&lt;/span&gt;
&lt;span class='line-number'&gt;41&lt;/span&gt;
&lt;span class='line-number'&gt;42&lt;/span&gt;
&lt;span class='line-number'&gt;43&lt;/span&gt;
&lt;span class='line-number'&gt;44&lt;/span&gt;
&lt;span class='line-number'&gt;45&lt;/span&gt;
&lt;span class='line-number'&gt;46&lt;/span&gt;
&lt;span class='line-number'&gt;47&lt;/span&gt;
&lt;span class='line-number'&gt;48&lt;/span&gt;
&lt;span class='line-number'&gt;49&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='csharp'&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Web&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;UploadManager&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UploadManagerHandler&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IHttpHandler&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;ProcessRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;HttpContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Pragma&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Cache-Control&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;private, no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;action&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(!&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Trim&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;ToLower&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;upload&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Files&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt; &lt;span class="p"&gt;||&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Files&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Count&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                        &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;End&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;upload&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;UploadImageManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Upload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;UploadImageManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SerializeJson&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Vary&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Accept&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ContentType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HTTP_ACCEPT&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StatusCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ClearHeaders&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StatusCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;405&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;End&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;IsReusable&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;get&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 


&lt;p&gt;In order to make this web service CORS-enabled, we need to send back the &lt;code&gt;Access-Control-Allow-Headers&lt;/code&gt; and the &lt;code&gt;Access-Control-Allow-Origin&lt;/code&gt; headers. So, a simple refactoring led me to the following that I invoke from the &lt;code&gt;ProcessRequest&lt;/code&gt; method:&lt;/p&gt;

&lt;span&gt;SendHeaders.cs &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='csharp'&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SendHeaders&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;HttpContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Pragma&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Cache-Control&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;private, no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Access-Control-Allow-Headers&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;X-File-Name,X-File-Type,X-File-Size&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Access-Control-Allow-Origin&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 


&lt;p&gt;I started the debugger in Cassini and everything started working beautifully! It was time to deploy to IIS.&lt;/p&gt;

&lt;h2&gt;IIS and OPTIONS Requests&lt;/h2&gt;


&lt;p&gt;While using Cassini to test the changes to the ASHX services, I had no problems getting a successful response to the &lt;code&gt;OPTIONS&lt;/code&gt; request submitted by the jQuery File Uploader. However, when I published to IIS, I ran into another wall - my &lt;code&gt;OPTIONS&lt;/code&gt; request to the IIS-hosted service was &lt;strong&gt;not&lt;/strong&gt; returning the custom headers &lt;code&gt;Access-Control-Allow-Headers&lt;/code&gt; and &lt;code&gt;Access-Control-Allow-Origin&lt;/code&gt;, despite getting a 200-level response. In fact, the request and response just showed the following headers:&lt;/p&gt;

&lt;span&gt;Request Headers.txt &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='text'&gt;&lt;span class='line'&gt;Accept:*/*
&lt;/span&gt;&lt;span class='line'&gt;Accept-Charset:ISO-8859-1,utf-8;q=0.7,&amp;#92;*;q=0.3
&lt;/span&gt;&lt;span class='line'&gt;Accept-Encoding:gzip,deflate,sdch
&lt;/span&gt;&lt;span class='line'&gt;Accept-Language:en-US,en;q=0.8
&lt;/span&gt;&lt;span class='line'&gt;Access-Control-Request-Headers:origin, x-file-size, x-file-name, content-type, accept, x-file-type
&lt;/span&gt;&lt;span class='line'&gt;Access-Control-Request-Method:POST
&lt;/span&gt;&lt;span class='line'&gt;Cache-Control:no-cache
&lt;/span&gt;&lt;span class='line'&gt;Connection:keep-alive
&lt;/span&gt;&lt;span class='line'&gt;Host:lionheart.local
&lt;/span&gt;&lt;span class='line'&gt;Origin:http://localhost:49627
&lt;/span&gt;&lt;span class='line'&gt;Pragma:no-cache
&lt;/span&gt;&lt;span class='line'&gt;Referer:http://localhost:49627/BillOrder/PhotoPrintsUpload
&lt;/span&gt;&lt;span class='line'&gt;User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.152 Safari/535.19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 




&lt;span&gt;Response Headers.txt &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='text'&gt;&lt;span class='line'&gt;Allow:OPTIONS, TRACE, GET, HEAD, POST
&lt;/span&gt;&lt;span class='line'&gt;Content-Length:0
&lt;/span&gt;&lt;span class='line'&gt;Date:Fri, 13 Apr 2012 13:33:33 GMT
&lt;/span&gt;&lt;span class='line'&gt;Public:OPTIONS, TRACE, GET, HEAD, POST
&lt;/span&gt;&lt;span class='line'&gt;Server:Microsoft-IIS/7.5
&lt;/span&gt;&lt;span class='line'&gt;X-Powered-By:ASP.NET
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 


&lt;p&gt;Because I was not getting my custom errors, JavaScript was bailing out because it couldn&amp;#8217;t verify that the remote web service would authorize the cross-domain request:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-04-13-jquery-file-uploader/access-control-allow-origin.png" title="Origin localhost:49627 is not allowed by Access-Control-Allow-Origin."&gt;&lt;/p&gt;

&lt;p&gt;Why weren&amp;#8217;t my custom headers coming across the wire? When I attached the debugger, I found that my ASHX web service was not even being invoked when I tried to use the control, despite seeing the &lt;code&gt;OPTIONS&lt;/code&gt; request coming through my network console. I knew then that IIS was preventing or intercepting the request, so I decided to investigate the handlers for IIS. For reference, the web service is hosted on a web site with an Application Pool running .Net Framework 4 - Integrated Managed Pipeline.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-04-13-jquery-file-uploader/application-pools.png" title=".Net Framework 4 - Integrated Managed Pipeline"&gt;&lt;/p&gt;

&lt;p&gt;When looking at the &lt;strong&gt;lionheart.local Home&lt;/strong&gt; screen in IIS, double-click the &lt;strong&gt;Handler Mappings&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-04-13-jquery-file-uploader/lionheartlocal-home.png" title="IIS Web Site Home"&gt;&lt;/p&gt;

&lt;p&gt;From there, look through the list until you find a handler named &lt;code&gt;SimpleHandlerFactory-Integrated-4.0&lt;/code&gt; with a path of &lt;code&gt;*.ashx&lt;/code&gt; and double-click that handler.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-04-13-jquery-file-uploader/lionheartlocal-handlermappings.png" title="SimpleHandlerFactory-Integrated-4.0"&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Edit Managed Handler&lt;/strong&gt; window that pops up, click the &lt;strong&gt;Request Restrictions&lt;/strong&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-04-13-jquery-file-uploader/lionheartlocal-editmanagedhandlers.png" title="Edit Managed Handlers"&gt;&lt;/p&gt;

&lt;p&gt;In the window that pops up (&lt;strong&gt;Request Restrictions&lt;/strong&gt;), click the &lt;strong&gt;Verbs&lt;/strong&gt; tab.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chrisweldon.net/images/posts/2012-04-13-jquery-file-uploader/lionheartlocal-requestrestrictions.png" title="Request Restrictions"&gt;&lt;/p&gt;

&lt;p&gt;This confirms my suspicions - the handler is not setup to pass &lt;code&gt;OPTIONS&lt;/code&gt; requests to the actual web service. The simple fix is to add &lt;code&gt;OPTIONS&lt;/code&gt; to the list of verbs to respond. However, this is just a temporary fix, as every time I re-deploy the web service, this setting would be reverted. Thus, the more permanent fix is to add the following to the project&amp;#8217;s &lt;code&gt;web.config&lt;/code&gt; (inside &lt;code&gt;&amp;lt;system.webServer&amp;gt;&lt;/code&gt;) so that this permanently sticks:&lt;/p&gt;

 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='xml'&gt;&lt;span class='line'&gt;&lt;span class="nt"&gt;&amp;lt;handlers&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;  &lt;span class="nt"&gt;&amp;lt;remove&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;SimpleHandlerFactory-Integrated-4.0&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;  &lt;span class="nt"&gt;&amp;lt;add&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;SimpleHandlerFactory-Integrated-4.0&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;path=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;*.ashx&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;verb=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;GET,HEAD,POST,DEBUG,OPTIONS&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;System.Web.UI.SimpleHandlerFactory&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;resourceType=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Unspecified&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;requireAccess=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Script&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;preCondition=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;integratedMode,runtimeVersionv4.0&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="nt"&gt;&amp;lt;/handlers&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 


&lt;p&gt;Upon re-deploying the service, the &lt;code&gt;OPTIONS&lt;/code&gt; request finally returned the proper headers:&lt;/p&gt;

&lt;span&gt;Updated Response Headers.txt &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='text'&gt;&lt;span class='line'&gt;Access-Control-Allow-Headers:X-File-Name,X-File-Type,X-File-Size
&lt;/span&gt;&lt;span class='line'&gt;Access-Control-Allow-Origin:&amp;#92;*
&lt;/span&gt;&lt;span class='line'&gt;Cache-Control:private, no-cache
&lt;/span&gt;&lt;span class='line'&gt;Content-Length:0
&lt;/span&gt;&lt;span class='line'&gt;Date:Fri, 13 Apr 2012 14:11:17 GMT
&lt;/span&gt;&lt;span class='line'&gt;Pragma:no-cache
&lt;/span&gt;&lt;span class='line'&gt;Server:Microsoft-IIS/7.5
&lt;/span&gt;&lt;span class='line'&gt;X-AspNet-Version:4.0.30319
&lt;/span&gt;&lt;span class='line'&gt;X-Powered-By:ASP.NET
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 




&lt;h2&gt;ASHX Response.StatusCode and Response.End()&lt;/h2&gt;


&lt;p&gt;After pushing these last changes to IIS, I was able to watch the progress bar advance at the correct pace while the file upload progressed. Yet, I ran into yet &lt;em&gt;another&lt;/em&gt; issue. Once the upload completed, the network response did not respond with an HTTP Success status code. In fact, it looked like from the network console in Chrome that the web service arbitrarily terminated the connection. No response headers were even registered in the network console.&lt;/p&gt;

&lt;p&gt;I attached the debugger to the IIS process and observed that it executed the code &lt;strong&gt;without&lt;/strong&gt; throwing an exception. In fact, the IIS logs show an HTTP status code value of 200. I was completely at a loss and had to think about this for about 15 minutes before checking out what &lt;code&gt;HttpContext.Current.Response.End()&lt;/code&gt; was doing. I came across a &lt;a rel="nofollow" target="_blank" href="http://support.microsoft.com/kb/312629/"&gt;Microsoft KnoweldgeBase Article&lt;/a&gt; indicating that &lt;code&gt;Response.End()&lt;/code&gt; will throw a &lt;code&gt;ThreadAbortException&lt;/code&gt;. I began to think about why we even needed this invocation. All raw web services I&amp;#8217;ve dealt with since .Net 2.0 have &lt;strong&gt;never&lt;/strong&gt; required forcing the response to end. Simply returning from the service will wrap up all necessary ends and send the data back to the client. That&amp;#8217;s when I looked at the &lt;a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.httpresponse.end.aspx"&gt;MSDN Documentation&lt;/a&gt; and found this:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This method is provided only for compatibility with ASP—that is, for compatibility with COM-based Web-programming technology that preceded ASP.NET. If you want to jump ahead to the EndRequest event and send a response to the client, call CompleteRequest instead. To mimic the behavior of the End method in ASP, this method tries to raise a [ThreadAbortException] exception. If this attempt is successful, the calling thread will be aborted, which is detrimental to your site&amp;#8217;s performance. In that case, no code after the call to the End method is executed.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;This isn&amp;#8217;t classic ASP, so dumping this method call was the first thing for me to do. Yet, that didn&amp;#8217;t fix the problem. I still did not receive any response headers in my network console. So, in digging around a little more, I decided to try to force send a &lt;code&gt;ResponseCode&lt;/code&gt; of 200 back to the client after the upload completed. I &lt;em&gt;literally&lt;/em&gt; jumped out of my seat when the upload succeeded, the network console registered a 200-level response, and kicked off the &lt;code&gt;done&lt;/code&gt; event to send me to the destination confirmation page.&lt;/p&gt;

&lt;p&gt;The final code for the web service that made all of this work is below.&lt;/p&gt;

&lt;span&gt;UploadManagerHandler-final.ashx.cs &lt;/span&gt; 
 &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;span class='line-number'&gt;16&lt;/span&gt;
&lt;span class='line-number'&gt;17&lt;/span&gt;
&lt;span class='line-number'&gt;18&lt;/span&gt;
&lt;span class='line-number'&gt;19&lt;/span&gt;
&lt;span class='line-number'&gt;20&lt;/span&gt;
&lt;span class='line-number'&gt;21&lt;/span&gt;
&lt;span class='line-number'&gt;22&lt;/span&gt;
&lt;span class='line-number'&gt;23&lt;/span&gt;
&lt;span class='line-number'&gt;24&lt;/span&gt;
&lt;span class='line-number'&gt;25&lt;/span&gt;
&lt;span class='line-number'&gt;26&lt;/span&gt;
&lt;span class='line-number'&gt;27&lt;/span&gt;
&lt;span class='line-number'&gt;28&lt;/span&gt;
&lt;span class='line-number'&gt;29&lt;/span&gt;
&lt;span class='line-number'&gt;30&lt;/span&gt;
&lt;span class='line-number'&gt;31&lt;/span&gt;
&lt;span class='line-number'&gt;32&lt;/span&gt;
&lt;span class='line-number'&gt;33&lt;/span&gt;
&lt;span class='line-number'&gt;34&lt;/span&gt;
&lt;span class='line-number'&gt;35&lt;/span&gt;
&lt;span class='line-number'&gt;36&lt;/span&gt;
&lt;span class='line-number'&gt;37&lt;/span&gt;
&lt;span class='line-number'&gt;38&lt;/span&gt;
&lt;span class='line-number'&gt;39&lt;/span&gt;
&lt;span class='line-number'&gt;40&lt;/span&gt;
&lt;span class='line-number'&gt;41&lt;/span&gt;
&lt;span class='line-number'&gt;42&lt;/span&gt;
&lt;span class='line-number'&gt;43&lt;/span&gt;
&lt;span class='line-number'&gt;44&lt;/span&gt;
&lt;span class='line-number'&gt;45&lt;/span&gt;
&lt;span class='line-number'&gt;46&lt;/span&gt;
&lt;span class='line-number'&gt;47&lt;/span&gt;
&lt;span class='line-number'&gt;48&lt;/span&gt;
&lt;span class='line-number'&gt;49&lt;/span&gt;
&lt;span class='line-number'&gt;50&lt;/span&gt;
&lt;span class='line-number'&gt;51&lt;/span&gt;
&lt;span class='line-number'&gt;52&lt;/span&gt;
&lt;span class='line-number'&gt;53&lt;/span&gt;
&lt;span class='line-number'&gt;54&lt;/span&gt;
&lt;span class='line-number'&gt;55&lt;/span&gt;
&lt;span class='line-number'&gt;56&lt;/span&gt;
&lt;span class='line-number'&gt;57&lt;/span&gt;
&lt;span class='line-number'&gt;58&lt;/span&gt;
&lt;span class='line-number'&gt;59&lt;/span&gt;
&lt;span class='line-number'&gt;60&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='csharp'&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Web&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;UploadManager&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UploadManagerHandler&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IHttpHandler&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;ProcessRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;HttpContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="c1"&gt;// Send the headers. If the request is for OPTIONS, end the transmission.&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;SendHeaders&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HttpMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Equals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;OPTIONS&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;StringComparison&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;InvariantCultureIgnoreCase&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;action&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(!&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Trim&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;ToLower&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;upload&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Files&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt; &lt;span class="p"&gt;||&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Files&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Count&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                        &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;upload&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;UploadImageManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Upload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;UploadImageManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SerializeJson&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;upload&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Vary&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Accept&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ContentType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HTTP_ACCEPT&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StatusCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StatusCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;405&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SendHeaders&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;HttpContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Pragma&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Cache-Control&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;private, no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Access-Control-Allow-Headers&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;X-File-Name,X-File-Type,X-File-Size&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Access-Control-Allow-Origin&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;IsReusable&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="k"&gt;get&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;            &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; 



&lt;img src="http://feeds.feedburner.com/~r/chrisweldon/vCab/~4/FDbaU6HBFJ4" height="1" width="1"/&gt;</description>
         <author>Chris Weldon</author>
         <guid isPermaLink="false">http://www.chrisweldon.net/blog/2012/04/13/jquery-file-uploader</guid>
         <pubDate>Fri, 13 Apr 2012 13:12:00 +0000</pubDate>
      </item>
      <item>
         <title>AgileDotNet Houston 2012</title>
         <link>http://tmgirvin.com/2012/04/11/agiledotnet-houston/</link>
         <description>We just got confirmation on the final slots for AgileDotNet Houston.&amp;#160; Chris Tullier, the region’s Microsoft Developer Technical Specialist and Improving alumnus will be delivering the opening keynote on agile development with Dev 11.&amp;#160; And, Markus Egger of EPS Software, a prolific writer, speaker, and Microsoft Regional Director, will be delivering the closing keynote.&amp;#160; AgileDotNet [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&amp;#038;blog=14416035&amp;#038;post=35&amp;#038;subd=tmgirvin&amp;#038;ref=&amp;#038;feed=1" width="1" height="1"/&gt;</description>
         <author>tmgirvin</author>
         <guid isPermaLink="false">https://tmgirvin.wordpress.com/?p=35</guid>
         <pubDate>Thu, 12 Apr 2012 02:20:07 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://tmgirvin.files.wordpress.com/2012/04/adn-houston-2012.png"><img title="ADN Houston 2012" style="background-image:none;float:right;padding-top:0;padding-left:0;margin:5px 0 5px 5px;display:inline;padding-right:0;border-width:0;" border="0" alt="ADN Houston 2012" align="right" src="http://tmgirvin.files.wordpress.com/2012/04/adn-houston-2012_thumb.png?w=244&h=133" width="244" height="133"/></a>We just got confirmation on the final slots for <a rel="nofollow" target="_blank" href="http://www.AgileDotNet.com/">AgileDotNet</a> Houston.&#160; <a rel="nofollow" target="_blank" href="http://www.linkedin.com/in/christullier">Chris Tullier</a>, the region’s Microsoft Developer Technical Specialist and Improving alumnus will be delivering the opening keynote on agile development with Dev 11.&#160; And, <a rel="nofollow" target="_blank" href="http://www.markusegger.com/">Markus Egger</a> of <a rel="nofollow" target="_blank" href="http://www.eps-software.com/">EPS Software</a>, a prolific writer, speaker, and Microsoft Regional Director, will be delivering the closing keynote.&#160; <a rel="nofollow" target="_blank" href="http://www.AgileDotNet.com/">AgileDotNet</a> is April 20th, so if you’re in the Houston area, register now and come see the industry’s best and brightest!</p>
<br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tmgirvin.wordpress.com/35/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tmgirvin.wordpress.com/35/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gofacebook/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tmgirvin.wordpress.com/35/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gotwitter/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tmgirvin.wordpress.com/35/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tmgirvin.wordpress.com/35/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tmgirvin.wordpress.com/35/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/tmgirvin.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tmgirvin.wordpress.com/35/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&#038;blog=14416035&#038;post=35&#038;subd=tmgirvin&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="http://1.gravatar.com/avatar/f6f9794f022869f90db72ef2dc6ee0cc?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">tmgirvin</media:title>
         </media:content>
         <media:content medium="image" url="http://tmgirvin.files.wordpress.com/2012/04/adn-houston-2012_thumb.png">
            <media:title type="html">ADN Houston 2012</media:title>
         </media:content>
      </item>
      <item>
         <title>SharePoint Client Object Model: Step One</title>
         <link>http://weblogs.asp.net/peterbrunone/archive/2012/04/10/sharepoint-client-object-model-step-one.aspx</link>
         <description>&lt;p&gt;I almost didn't make it out alive.&amp;nbsp; I followed the instructions in every piece of sample code and every forum post by someone who had no idea why their client OM code wasn't working, and my code still wouldn't get past the page load.&amp;nbsp; I kept getting "'Type' is undefined" errors when sp.core.js tried to register the SP namespace.&lt;br&gt;&lt;/p&gt;&lt;p&gt;As it turns out, you need the help of the default master page (or one like it) to get the object model loaded.&amp;nbsp; Once I told my sample page to use the default master and modified everything accordingly, it hooked up and ran just fine.&lt;/p&gt;&lt;p&gt;Now I can finally get some work done. &lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8384017" width="1" height="1"&gt;</description>
         <author>PeterBrunone</author>
         <guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8384017</guid>
         <pubDate>Tue, 10 Apr 2012 19:12:00 +0000</pubDate>
      </item>
      <item>
         <title>Current Openings</title>
         <link>http://brandonbarber.net/archives/306</link>
         <description>Dev Manager / Irving &amp;#8211; $110-115K / Saas Model, Agile, Java or .NET experience background Java Engineers – openings  for contract and direct hire &amp;#8211; (Dallas, Fort-Worth areas) Project Manger (Agile/Dev) – Irving, contract to hire Lead .NET Developer (ASP.NET / MVC) – Richardson &amp;#8211; $120K UI Developer – Deep Ellum ( UX and front [...]</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=306</guid>
         <pubDate>Mon, 09 Apr 2012 21:15:49 +0000</pubDate>
         <content:encoded><![CDATA[<ol>
<li>Dev Manager / Irving &#8211; $110-115K / Saas Model, Agile, Java or .NET experience background</li>
<li>Java Engineers – openings  for contract and direct hire &#8211; (Dallas, Fort-Worth areas)</li>
<li>Project Manger (Agile/Dev) – Irving, contract to hire</li>
<li>Lead .NET Developer (ASP.NET / MVC) – Richardson &#8211; $120K</li>
<li>UI Developer – Deep Ellum ( UX and front end)</li>
<li>SQL Developer – Uptown Dallas</li>
</ol>]]></content:encoded>
      </item>
      <item>
         <title>Windows Phone–Boy did you change my mind</title>
         <link>http://www.devlinliles.com/post/Windows-Phonee28093Boy-did-you-change-my-mind.aspx</link>
         <description>&lt;p&gt;I was a huge BlackBerry user and then Tim Rayburn had me using an iPhone. I was impressed by the phone. &lt;/p&gt;  &lt;p&gt;Thursday I went and pre-ordered my Nokia Lumina 900 after Keith Elder gave me a 10 minute windows phone demo at MVP summit. All I can say is Wow!! The 10 minute demo was enough for me to buy the phone, and I can never go back now. The setup was seamless with all my accounts, the people hub is fabulous. The ease of use and just overall feel of the phone is what has impressed me the most. &lt;/p&gt;  &lt;p&gt;The applications don’t feel like separate environments and it is great. They feel like natural extensions of the current environment. &lt;/p&gt;  &lt;p&gt;The phone also integrated with my windows box, my Xbox and my home server effortlessly. I now have an XBox Companion remote, a powerpoint remote, and a media remote all from my phone. &lt;/p&gt;  &lt;p&gt;The screen and graphics are great. The speed of the phone was also impressive. I understand the smoked by windows phone campaign now.&lt;/p&gt;</description>
         <author>Devlin</author>
         <guid isPermaLink="false">http://www.devlinliles.com/post.aspx?id=15cc69a6-2c64-4694-a1de-a158b19e12f6</guid>
         <pubDate>Mon, 09 Apr 2012 18:32:49 +0000</pubDate>
      </item>
      <item>
         <title>Upcoming 2012 Talks and Conferences</title>
         <link>http://feedproxy.google.com/~r/chrisweldon/vCab/~3/LQTd9H5nlt8/</link>
         <description>&lt;p&gt;I&amp;#8217;ve been honored to have been selected to speak at three &lt;strong&gt;great&lt;/strong&gt; conferences coming up later this Spring and Summer 2012. I wanted to post so those who follow my blog know about these great events that are a &lt;em&gt;great value&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;AgileDotNet Houston&lt;/h2&gt;


&lt;p&gt;&lt;img class="right" src="http://www.chrisweldon.net/images/posts/agiledotnet-houston.png" width="200" height="103" title="AgileDotNet Houston 2012"&gt;&lt;/p&gt;

&lt;p&gt;The first in my lineup of conferences is &lt;a rel="nofollow" target="_blank" href="http://www.agiledotnet.com/"&gt;AgileDotNet - Houston&lt;/a&gt; on April 20th. This is a conference focused on two core topics: Agile Software Development and .Net technologies. We&amp;#8217;ve got an amazing lineup of speakers for this event, both from Improving and from other groups including &lt;a rel="nofollow" target="_blank" href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://www.eps-software.com/"&gt;EPS Software&lt;/a&gt;, and other companies. I&amp;#8217;m the development track manager for the conference and have made sure that all of the topics are focused on Agile development with .Net technologies - &lt;em&gt;without&lt;/em&gt; the sales pitches you would normally get at other conferences. I emphasize technology generalization in the talks in this track, and these speakers do a wonderful job sticking to that goal. I will be presenting &lt;a rel="nofollow" target="_blank" href="http://www.agiledotnet.com/2012/03/beyond-tdd-how-to-enable-your-team-to-continuously-deliver-software"&gt;&lt;em&gt;Beyond TDD - How to Enable Your Team to Continuously Deliver Software&lt;/em&gt;&lt;/a&gt;. This is a very thought-provoking presentation on how to get your team to the point where it can continuously deliver software. It was very well received at AgileDotNet Dallas and several user groups that I&amp;#8217;ve spoken at recently.&lt;/p&gt;

&lt;p&gt;The other perks of this conference are really nifty. All attendees get a &lt;em&gt;free&lt;/em&gt; (as in beer) subscription to &lt;a rel="nofollow" target="_blank" href="http://www.codemag.com/"&gt;CODE Magazine&lt;/a&gt;, 6 PMI PDUs (if you&amp;#8217;re a project management professional), &lt;em&gt;and&lt;/em&gt; a &lt;em&gt;free&lt;/em&gt; ticket to see the Astros beat the hell outta the Dodgers. Did I mention the plethora of free food and beverages at the event? &lt;a rel="nofollow" target="_blank" href="http://www.improvingenterprises.com/"&gt;Improving&lt;/a&gt; sure knows how to throw a party.&lt;/p&gt;

&lt;p&gt;&lt;span class='pullquote-right'&gt;
If you&amp;#8217;re interested in coming, go to &lt;a rel="nofollow" target="_blank" href="http://www.agiledotnet.com"&gt;www.agiledotnet.com&lt;/a&gt;. Use code CHRIS for 25% off the ticket price. It&amp;#8217;s the best value Agile conference you&amp;#8217;ll find in Texas.
&lt;/span&gt;&lt;/p&gt;

&lt;h2&gt;SharePoint Saturday Houston&lt;/h2&gt;


&lt;p&gt;&lt;img class="left" src="http://www.chrisweldon.net/images/posts/sharepointsaturday-houston.jpg" width="400" height="75" title="SharePoint Saturday - Houston"&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll be speaking for my first time at &lt;a rel="nofollow" target="_blank" href="http://www.sharepointsaturday.org/houston/"&gt;SharePoint Saturday Houston&lt;/a&gt; on April 28th. This is an &lt;strong&gt;excellent&lt;/strong&gt; and &lt;em&gt;free&lt;/em&gt; conference for the SharePoint community. Many SharePoint MVPs, MCMs, and other great talent will be there to deliver a wealth of knowledge. There are several different tracks, including Administration/Architecture, Developer, Business/General, IT Pro, and Power/End User/Case Study. I will be presenting &lt;em&gt;Why Your Identity Model is Wrong - Leveraging Claims to Open to the Cloud&lt;/em&gt;. This talk is centered around the Windows Identity Foundations in SharePoint 2010 and how organizations need to change how they provision identities to enable the transition to the cloud easier.&lt;/p&gt;

&lt;p&gt;I highly suggest registering for this conference if you&amp;#8217;re a user, developer, or administrator of SharePoint. You can register via their website at &lt;a rel="nofollow" target="_blank" href="http://www.sharepointsaturday.org/houston"&gt;www.sharepointsaturday.org/houston&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Lone Star PHP&lt;/h2&gt;


&lt;p&gt;&lt;img class="right" src="http://www.chrisweldon.net/images/posts/lsp-logo.png" width="200" height="163" title="Lone Star PHP"&gt;&lt;/p&gt;

&lt;p&gt;To bring Q2 2012 to a close, I will be one of the privileged speakers at the &lt;a rel="nofollow" target="_blank" href="http://www.lonestarphp.com"&gt;Lone Star PHP&lt;/a&gt; conference in Dallas, TX. This is the second year they are hosting this event, and it&amp;#8217;s been expanded to two days due to overwhelming interest the first year (I believe they sold out). This year&amp;#8217;s speaker lineup includes great names in the PHP community, including &lt;a rel="nofollow" target="_blank" href="http://calevans.com/"&gt;Cal Evans&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://www.littlehart.net/"&gt;Chris Hartjes&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://caseysoftware.com"&gt;Keith Casey&lt;/a&gt; and so many other wonderful speakers. Oh yea, including myself. I&amp;#8217;ll be presenting &lt;a rel="nofollow" target="_blank" href="http://lonestarphp.com/schedule"&gt;&lt;em&gt;SOLID - Not Just a State of Matter, It&amp;#8217;s Principles for OO Propriety&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Any&lt;/em&gt; PHP developer in and around Texas should come out to this conference as it will be extremely rewarding. Why are you still reading? &lt;a rel="nofollow" target="_blank" href="http://lonestarphp.com/registration"&gt;Register now!&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/chrisweldon/vCab/~4/LQTd9H5nlt8" height="1" width="1"/&gt;</description>
         <author>Chris Weldon</author>
         <guid isPermaLink="false">http://www.chrisweldon.net/blog/2012/04/06/upcoming-2012-talks-and-conferences</guid>
         <pubDate>Fri, 06 Apr 2012 15:18:00 +0000</pubDate>
      </item>
      <item>
         <title>Yet Another Blog Re-Launch</title>
         <link>http://feedproxy.google.com/~r/chrisweldon/vCab/~3/o5XYjATfqlY/</link>
         <description>&lt;p&gt;&lt;img class="right" src="http://www.chrisweldon.net/images/posts/octopress-logo.png" width="227" height="277" title="Octopress"&gt;&lt;/p&gt;

&lt;p&gt;Today I&amp;#8217;ve completed the conversion and re-launch of my blog. Previously I had been using &lt;a rel="nofollow" target="_blank" href="http://www.wordpress.org/"&gt;Wordpress&lt;/a&gt;, but after having it hacked &lt;em&gt;several&lt;/em&gt; times and loosing the customized template I made, I became rather disinterested in blogging. It has been converted to &lt;a rel="nofollow" target="_blank" href="http://octopress.org"&gt;Octopress&lt;/a&gt;. My disinterest was because I didn&amp;#8217;t want to deal with the platform (Wordpress). I hated the fact that it was database-driven and was prone to so many vulnerabilities and required more maintenance than I had time to deal with. I hated the way the default template looked, yet didn&amp;#8217;t want to find another off-the-shelf template and be one of the many out there with the &lt;em&gt;same&lt;/em&gt; template. I like to be unique. Ultimately, I hated writing blog posts in Wordpress. I&amp;#8217;m a web developer, and I like writing documents that are going on the web in good &amp;#8216;ole &lt;code&gt;html&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;&lt;span class='pullquote-right'&gt;
Did I dislike writing content? Far from it. Inquire with my &lt;a rel="nofollow" target="_blank" href="http://www.ladyalissiya.net/"&gt;wife&lt;/a&gt;. She&amp;#8217;ll tell you how much I like to write. The last year and a half, an internal debate was waging: am I missing the whole point of blogging (that is, the content), or am I really wanting to turn my website into a platform that helps market me as a person? The more I thought about it, the more I realized the latter was what I &lt;strong&gt;wanted&lt;/strong&gt;, but the former is all I have time for. As a consultant and community advocate, I spend a lot of time thinking about how to market myself as an individual, much less the company I work for (&lt;a rel="nofollow" target="_blank" href="http://www.improvingenterprises.com/"&gt;Improving Enterprises&lt;/a&gt;). Ultimately, the name recognition within the community is what enables me to be invited to more speaking engagements, which in turn gets me into the larger, national conferences. Being recognized helps drive engagement, whether it&amp;#8217;s helping to answer a community question, or whether it&amp;#8217;s becoming engaged with a new project.
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The first aspect of looking at my identity was a logo. Several of the best consultants and designers on the web have a logo that definitely is unique to them. Coming up with a logo for yourself is &lt;strong&gt;hard&lt;/strong&gt;, especially when you&amp;#8217;re not the most apt designer. I knew of several traits that I wanted to portray (without being too literal), yet I couldn&amp;#8217;t get any good design to push from my brain through the pencil. Ultimately, I gave up with this approach and tried to focus on the blog. I figured that once I had the blog design out of the way, it would be easier to come up with the logo design. Sadly, I had been out of commission long enough to have lost my skills of drafting good designs. Combined with the fact that work was getting extremely busy, I had to abandon the approach of a new blog design altogether.&lt;/p&gt;

&lt;p&gt;&lt;span class='pullquote-left'&gt;
Thus, we&amp;#8217;re back at square one - figuring out how whether to focus on identity or blogging. I opted to do a review of my blog, just to see how much &lt;em&gt;identity&lt;/em&gt; I had really pushed into that. To my chagrin, there weren&amp;#8217;t a lot of posts on what I feel defines me as an individual; it seemed very sporadic, and I actually have more posts on &lt;a rel="nofollow" target="_blank" href="http://www.chrisweldon.net/blog/categories/systems-administration/"&gt;systems administration&lt;/a&gt; than I do on &lt;a rel="nofollow" target="_blank" href="http://www.chrisweldon.net/blog/categories/software-development/"&gt;software development&lt;/a&gt;. That&amp;#8217;s when I realized that I can be the most effective by focusing on my content now, and working on identity later.
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;In this blog revamp, I did a number of different things. First, all code samples are using the &lt;a rel="nofollow" target="_blank" href="http://octopress.org/"&gt;Octopress&lt;/a&gt; code blocks to have consitent syntax highlighting. Second, I have simplified the categories into the following:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://www.chrisweldon.net/blog/categories/software-development"&gt;Software Development&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://www.chrisweldon.net/blog/categories/systems-administration"&gt;Systems Administration&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://www.chrisweldon.net/blog/categories/personal"&gt;Personal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;These are the primary three types of individuals that I market to on my blog, so hopefully splitting up the blog into these separate sections will allow more RSS subscribers to the category they are most interested in. Ultimately, if you are using an RSS reader (yet another reason why the branding of the site doesn&amp;#8217;t matter for identity), you can subscribe to any of the following RSS feeds:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/chrisweldon/software-development"&gt;Software Development&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/chrisweldon/systems-administration"&gt;Systems Administration&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/chrisweldon/personal"&gt;Personal&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/chrisweldon/vCab"&gt;All Posts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Ultimately, I &lt;em&gt;hope&lt;/em&gt; this gives me more motivation to blog more regularly. Can I promise a regular schedule? This time, don&amp;#8217;t count on it. I&amp;#8217;ve stated so many times in the past that &amp;#8220;I will get better about posting&amp;#8221; and it never comes to fruition. In reality, I&amp;#8217;m a busy guy, and posting to my blog is not the first thing on my mind. So, I encourage everyone to &lt;strong&gt;encourage me&lt;/strong&gt; to post so that I may actually do it.&lt;/p&gt;

&lt;p&gt;Cheers.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/chrisweldon/vCab/~4/o5XYjATfqlY" height="1" width="1"/&gt;</description>
         <author>Chris Weldon</author>
         <guid isPermaLink="false">http://www.chrisweldon.net/blog/2012/04/03/yet-another-blog-re-launch</guid>
         <pubDate>Tue, 03 Apr 2012 20:07:00 +0000</pubDate>
      </item>
      <item>
         <title>Crossroad Career Transition Workshop – April 14th</title>
         <link>http://brandonbarber.net/archives/302</link>
         <description>Career Support Ministries Crossroads offers a couple of ministries geared toward helping you find a job or enhancing your current occupational life. Even better, both ministries are mindful of a career-person&amp;#8217;s schedule. Career Transition Workshop When it started, Crossroads Bible Church’s Career Transition Network was one of the Dallas area&amp;#8217;s first church-based groups to help [...]</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=302</guid>
         <pubDate>Tue, 03 Apr 2012 18:21:01 +0000</pubDate>
         <content:encoded><![CDATA[<h4>Career Support Ministries</h4>
<p>Crossroads offers a couple of ministries geared toward helping you find a job or enhancing your current occupational life. Even better, both ministries are mindful of a career-person&#8217;s schedule.</p>
<p>Career Transition Workshop</p>
<p><img src="http://www.crossroadsbible.org/images/CTW-1A.jpg" alt=""/></p>
<p>When it started, Crossroads Bible Church’s Career Transition Network was one of the Dallas area&#8217;s first church-based groups to help people searching for employment. The network now hosts a free Career Transition Workshop eight months out of the year. Human Resource professionals specialized in recruitment and staffing teach advanced skills, techniques and secrets for job-hunting strategies:</p>
<ul>
<li>Utilizing the Internet in your job search</li>
<li>Job search strategies</li>
<li>Resume writing</li>
<li>Networking</li>
<li>Interviewing</li>
<li>Negotiating techniques</li>
</ul>
<p>The workshop is for those who are unemployed, under-employed or just seeking new employment. We open the workshop with a time of prayerful support and encouragement from the Bible. People get to know one another and exchange information about possible employment. We also connect people via the Internet to a wide variety of local job leads.</p>
<h5><strong>The Next Workshop Will Be April 14, 2012 9 a.m. – 4:30 p.m. E-mail <a rel="nofollow" target="_blank" href="mailto:ctw@crossroadsbible.org">ctw@crossroadsbible.org</a> to RSVP</strong></h5>]]></content:encoded>
      </item>
      <item>
         <title>Scrum Simulation with LEGO Bricks</title>
         <link>http://tastycupcakes.org/2012/04/scrum-simulation-with-lego-bricks/</link>
         <description>A Multi-Team, Full-Cycle, Product-Oriented Scrum Simulation with LEGO Bricks. The Small &amp;#38; Medium Business Edition. Can be adapted to teach other iteration-based Agile frameworks. It is proven that the game can be adapted to fit the particular needs of trainers and serve different sizes of audience. A “standard” game is described below, but you are [...]</description>
         <author>Alexey Krivitsky</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2067</guid>
         <pubDate>Mon, 02 Apr 2012 16:08:14 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>A Multi-Team, Full-Cycle, Product-Oriented Scrum Simulation with LEGO Bricks.</strong></p>
<p><strong>The Small &amp; Medium Business Edition.</strong><br />
<strong>Can be adapted to teach other iteration-based Agile frameworks.</strong></p>
<p><a rel="nofollow" target="_blank" href="http://lego4scrum.com/"><img class="alignnone size-large wp-image-2070" src="http://tastycupcakes.org/wp-content/uploads/2012/04/Screen-shot-2012-04-02-at-7.08.57-PM1-660x466.png" alt="" width="660" height="466"/></a></p>
<p>It is proven that the game can be adapted to fit the particular needs of trainers and serve different sizes of audience.</p>
<p>A “standard” game is described below, but you are encouraged to adopt it to fit your particular needs.</p>
<p>Timing: 100-120 minutes</p>
<ul>
<li>100 minutes &#8211; when using fast team estimation techniques</li>
<li>120 minutes &#8211; when using planning poker or other estimation tools</li>
</ul>
<p>Group Size: 4-25 people</p>
<ul>
<li>Ideal is 2-3 teams of 4-6 people (gives 8-18 people)</li>
<li>Can be extended with Scrum Masters</li>
</ul>
<p>LEGO Boxes: a LEGO box for a team of 4-6 people</p>
<ul>
<li>I use “Basic Brick Set #6177”</li>
<li>It takes four boxes for 20 people</li>
</ul>
<div><a rel="nofollow" target="_blank" href="http://lego4scrum.com/">DETAILED RULES ARE AVAILABLE IN MULTIPLE LANGUAGES</a></div>]]></content:encoded>
      </item>
      <item>
         <title>Entity Framework 4.1 Experts Cookbook</title>
         <link>http://www.devlinliles.com/post/Entity-Framework-41-Experts-Cookbook.aspx</link>
         <description>&lt;p&gt;This week I got to knock an item off my bucket list. I got published! &lt;/p&gt;  &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.packtpub.com/entity-framework-4-1-experts-test-driven-development-architecture-cookbook/book#overview"&gt;http://www.packtpub.com/entity-framework-4-1-experts-test-driven-development-architecture-cookbook/book#overview&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This book is a very Improving still book. Test driven and Architecture centric approaches to Entity Framework. It is not the introduction, but more the here is how we have seen success in the real world.&lt;/p&gt;  &lt;p&gt;It includes hands on recipes for learning how to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Manage database queries &lt;/li&gt;    &lt;li&gt;Leverage the full power of LINQ &lt;/li&gt;    &lt;li&gt;Test the data access layer &lt;/li&gt;    &lt;li&gt;Design an extensible data access layer &lt;/li&gt;    &lt;li&gt;Map any object model to a relational database &lt;/li&gt;    &lt;li&gt;Create clean integration tests &lt;/li&gt;    &lt;li&gt;Test queries in memory &lt;/li&gt;    &lt;li&gt;Compose even the most complex query scenarios &lt;/li&gt;    &lt;li&gt;Create and seed test databases from code &lt;/li&gt;    &lt;li&gt;Use stored procedures without losing the power of object oriented development&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This was the culmination of 6 months of work by Tim Rayburn and myself. I learned a lot in those 6 months. Little lessons like “You cannot write a chapter a night”, or “Your spelling REALLY needs work”. &lt;/p&gt;  &lt;p&gt;I truly hope you enjoy it and it helps in your coding.&lt;/p&gt;</description>
         <author>Devlin</author>
         <guid isPermaLink="false">http://www.devlinliles.com/post.aspx?id=2a19f5d6-5888-455d-a732-f37fe0065c50</guid>
         <pubDate>Fri, 30 Mar 2012 14:15:41 +0000</pubDate>
      </item>
      <item>
         <title>AgileDotNet Houston</title>
         <link>http://www.devlinliles.com/post/AgileDotNet-Houston.aspx</link>
         <description>&lt;p&gt;AgileDotNet - Houston is here! Improving Enterprises in conjunction with Microsoft will, once again, bring together the world of .NET development with the world of Agile methods for an exciting experience of discovery, learning, and community.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Don't miss this 1-day packed full of fresh Agile and Microsoft technology and tools information. Get great savings when you REGISTER NOW using the Code: DEVLIN&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Where: Minute Maid Park (&lt;a rel="nofollow" target="_blank" href="http://houston.astros.mlb.com/hou/ballpark/index.jsp"&gt;http://houston.astros.mlb.com/hou/ballpark/index.jsp&lt;/a&gt;)    &lt;br /&gt;When: Friday, April 20th, 2012    &lt;br /&gt;Time: 7:30am – 5:00pm; after party 5:30pm – end of the Astros game    &lt;br /&gt;Register Now: &lt;a rel="nofollow" target="_blank" href="http://www.agiledotnet.com/"&gt;http://www.agiledotnet.com/&lt;/a&gt; (registrants receive a FREE CODE Magazine subscription, a chance to win a trip to Vegas)    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Please forward this to others you think can help spread the word!&lt;/p&gt;</description>
         <author>Devlin</author>
         <guid isPermaLink="false">http://www.devlinliles.com/post.aspx?id=c5fe91df-0e50-48f0-9d48-7d3448456f89</guid>
         <pubDate>Wed, 28 Mar 2012 11:27:45 +0000</pubDate>
      </item>
      <item>
         <title>Ouija Board Estimation</title>
         <link>http://tastycupcakes.org/2012/03/ouija-board-estimation/</link>
         <description>Great fun and a really fun alternative to planning poker. Place a story in the centre of the table, and each team member places there finger on it. In silence, the team "collaboratively" push or pull the story to the size they believe it represents.</description>
         <author>Paul Goddard</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2021</guid>
         <pubDate>Tue, 27 Mar 2012 19:34:30 +0000</pubDate>
         <content:encoded><![CDATA[<p>Sit the team around a table (ideally a round one) and stick post-its around the table to represent the fibonacci sequence of size (1,2,3,5,8,13). Place a story in the centre of the table, and each team member places there finger on it. In silence, the team &#8220;collaboratively&#8221; push or pull the story to the size they believe it represents.</p>
<p style="text-align:left;">Well formed, well understood stories move freely and easily. Poorly defined or misunderstood stories stay in the centre of the table &#8211; when this occurs the facilitator invites the team to break their silence and discuss before trying again.</p>
<p style="text-align:left;">Dominant team members will be revealed by their white knuckles, or by putting two fingers on the card instead of just one. Facilitators should be aware of this and highlight that to the team.</p>
<p style="text-align:left;">Great fun and a really fun alternative to planning poker. You can see this in action by viewing <a rel="nofollow" target="_blank" href="http://youtu.be/YaHHr0e7LLA">Ouija Board Estimation via YouTube</a></p>

<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0389/' title='IMG_0389'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0389-150x150.jpg" class="attachment-thumbnail" alt="IMG_0389" title="IMG_0389"/></a>
<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0390/' title='IMG_0390'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0390-150x150.jpg" class="attachment-thumbnail" alt="IMG_0390" title="IMG_0390"/></a>
<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0391/' title='IMG_0391'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0391-150x150.jpg" class="attachment-thumbnail" alt="IMG_0391" title="IMG_0391"/></a>
<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0392/' title='IMG_0392'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0392-150x150.jpg" class="attachment-thumbnail" alt="IMG_0392" title="IMG_0392"/></a>
<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0393/' title='IMG_0393'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0393-150x150.jpg" class="attachment-thumbnail" alt="IMG_0393" title="IMG_0393"/></a>
<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0394/' title='IMG_0394'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0394-150x150.jpg" class="attachment-thumbnail" alt="IMG_0394" title="IMG_0394"/></a>
<a rel="nofollow" target="_blank" href='http://tastycupcakes.org/2012/03/ouija-board-estimation/img_0388/' title='IMG_0388'><img width="150" height="150" src="http://tastycupcakes.org/wp-content/uploads/2012/03/IMG_0388-150x150.jpg" class="attachment-thumbnail" alt="IMG_0388" title="IMG_0388"/></a>]]></content:encoded>
      </item>
      <item>
         <title>Improving Enteprises – Agiledotnet – Houston – April 20th</title>
         <link>http://brandonbarber.net/archives/296</link>
         <description>Improving Enterprises is hosting Agiledotnet once again in Houston on April 20th, 2012. This event will be held at Minute Maid Park. There will be new tracks and fresh content. To register, go to www.agiledotnet.com Improving Enterprises in conjunction with Microsoft will once again bring together the world of .NET development with the world of Agile [...]</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=296</guid>
         <pubDate>Tue, 27 Mar 2012 16:06:57 +0000</pubDate>
         <content:encoded><![CDATA[<p>Improving Enterprises is hosting Agiledotnet once again in Houston on April 20th, 2012. This event will be held at Minute Maid Park. There will be new tracks and fresh content.</p>
<p>To register, go to <a rel="nofollow" target="_blank" href="http://www.agiledotnet.com">www.agiledotnet.com</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.ImprovingEnterprises.com/">Improving Enterprises</a> in conjunction with <a rel="nofollow" target="_blank" href="http://www.Microsoft.com/">Microsoft</a> will once again bring together the world of .NET development with the world of Agile methods for an exciting one-day experience of discovery, learning and exchange.</p>
<p>Attendees can expect informative presentations based on real-world experience from some of the industry’s leading Developers, Project Managers, and Executives who have embraced Agile principles within .NET development environments.</p>
<p>Come see how both the experts and the beginners apply Agile concepts using the Microsoft .NET framework, Visual Studio, and Visual Studio Team System.</p>
<p>This year will be a unique experience; so don’t miss out &#8211; REGISTER NOW!  Click for more information &#8212; <a rel="nofollow" target="_blank" href="http://brandonbarber.net/wp-content/uploads/2012/03/ADN-H-2012-PMI-Promo-BRANDON.pptx">AgileDotNet Detailed Information and Coupon Code</a></p>]]></content:encoded>
      </item>
      <item>
         <title>One Word Storytelling</title>
         <link>http://tastycupcakes.org/2012/03/one-word-storytelling/</link>
         <description>Teams collaborate to make a story by only speaking one word at a time. Nobody knows what the story will look like at the start, and it changes based on peoples own input.</description>
         <author>Paul Goddard</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2048</guid>
         <pubDate>Tue, 27 Mar 2012 15:28:58 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>Timings:<br />
</strong>About 5-10 mins for new teams, longer for more mature teams or creative types</p>
<p>Dead easy to set up, quick and very fun. Even more fun over beers. Sit team in a circle. Ask the team for a boy or girl&#8217;s name, a household object and a location. Write down somewhere visible if required.</p>
<p>The team must then make a story by only speaking one word at a time, and going around the circle.</p>
<p><strong>Rules:</strong></p>
<ul>
<li>The story must &#8220;flow&#8221;</li>
<li>Players can add the words &#8220;full stop&#8221; to indicate a new sentence</li>
<li>The story elements the team chose must be used</li>
</ul>
<p><strong>Learning points:</strong></p>
<p>Collaboration &amp; Emergence. Players must be able to build on the previous word successfully. Nobody knows what the story will look like at the start, and it changes based on peoples own input. Some players will throw in &#8220;bad&#8221; words which are difficult to build on. These are BLOCKS. A good collaborator can turn a BLOCK into an OFFER which allows the next players to build the story more easily and create flow.</p>
<p>You can read more about offers and blocks in collaboration on my <a rel="nofollow" title="Creative Collaboration Through Improv" target="_blank" href="http://www.agilify.co.uk/agile-blog/creative-collaboration-through-improv">blog</a>.</p>
<p>(this exercise was co-created as part of a collaboration day between myself and Geoff Watts)</p>]]></content:encoded>
      </item>
      <item>
         <title>Fearless Journey – the game that gets your team UnStuck</title>
         <link>http://tastycupcakes.org/2012/03/fearless-journey-the-game-that-gets-your-team-unstuck/</link>
         <description>This card game highlights your Team's hard-to-reach Big Goal. Players write cards with real Obstacles - things outside their control that stop them from reaching the Goal. Then, using Fearless Change patterns for inspiration, the group designs influence Strategies to go over, around &amp;#038; thru these obstacles respectfully &amp;#038; boldly. Download it for free!</description>
         <author>Deborah Hartmann Preuss</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=2005</guid>
         <pubDate>Mon, 26 Mar 2012 14:35:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>Timing:</strong><br />
&#8212;&#8212;&#8212;&#8211;<br />
<strong>Recommended / before the game:</strong><br />
team-building, creating a shared vision.</p>
<p><strong>Play the game:</strong><br />
one hour, including prep and debrief<br />
(The first time this will be too short, but it&#8217;s enough to get started and get some value. Add a half hour the first time if you want to play to the end)</p>
<p>Optional / after the game:<br />
an action-planning activity, as you would do at the end of a retrospective.</p>
<p><strong>Overview:</strong><br />
&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<ul>
<li>This card game highlights your Team&#8217;s hard-to-reach Big Goal.</li>
<li>Players write cards with Obstacles outside their control, stopping them from reaching the Goal.</li>
<li>Then together they use Fearless Change++ patterns to design influence Strategies to go over, around &amp; thru obstacles respectfully &amp; boldly.</li>
</ul>
<p>++ game uses the 48 patterns from the book Fearless Change (c) (Manns &amp; Rising) used with permission</p>
<p>Conceived by a group at Play4Agile 2011 and designed by Deborah &amp; Ilja Preuss. Download and use it FREE of charge, under a CreativeCommons 3.0 license</p>
<p>Learning Points:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<ul>
<li>Shift a group from &#8220;but we can&#8217;t&#8230;&#8221; to &#8220;but we could try&#8230;&#8221;</li>
<li>This is a gut-level shift, and comes simply from putting objections aside for an hour and playing a &#8220;yes-and&#8221; game with real obstacles. Typically, optimism increases, mood lightens. Can also teach consensus decision making (using thumb-voting, for example), collaboration and appreciation.</li>
</ul>
<p><strong>* Note:</strong> the game is designed for **<em>a real team</em>**, not just a group. To play with a non-team, add time and facilitation to help them find common interests and a common goal. In this case, roleplaying may be required by some to form a &#8220;team&#8221;.</p>
<p><strong>Discussion and facilitation guidance:</strong><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
See download site for game instructions, link to public feedback document and contact form.</p>
<p>Link to Game:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>http://fearlessjourney.info</p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/tdomf/2005/FearlessJourney_v1.0_WhereToGetTheGame.pdf">FearlessJourney_v1.0_WhereToGetTheGame.pdf (406 KB)</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Just finished reading Steve Jobs</title>
         <link>http://tmgirvin.com/2012/03/23/just-finished-reading-steve-jobs/</link>
         <description>Steve Jobs by Walter Isaacson My rating: 4 of 5 stars Hugely insightful, entertaining, and inspiring. It&amp;#8217;s not often that you get to read an authorized biography of such an accomplished person, let alone so open and honest. View all my reviews&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&amp;#038;blog=14416035&amp;#038;post=30&amp;#038;subd=tmgirvin&amp;#038;ref=&amp;#038;feed=1" width="1" height="1"/&gt;</description>
         <author>tmgirvin</author>
         <guid isPermaLink="false">https://tmgirvin.wordpress.com/?p=30</guid>
         <pubDate>Fri, 23 Mar 2012 12:07:58 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" style="padding-right:20px;float:left;" target="_blank" href="http://www.goodreads.com/book/show/11084145-steve-jobs"><img border="0" alt="Steve Jobs" src="http://photo.goodreads.com/books/1327861368m/11084145.jpg"/></a><a rel="nofollow" target="_blank" href="http://www.goodreads.com/book/show/11084145-steve-jobs">Steve Jobs</a> by <a rel="nofollow" target="_blank" href="http://www.goodreads.com/author/show/7111.Walter_Isaacson">Walter Isaacson</a>   <br />My rating: <a rel="nofollow" target="_blank" href="http://www.goodreads.com/review/show/299257837">4 of 5 stars</a>   </p>
<p>Hugely insightful, entertaining, and inspiring. It&#8217;s not often that you get to read an authorized biography of such an accomplished person, let alone so open and honest.   </p>
<p><a rel="nofollow" target="_blank" href="http://www.goodreads.com/review/list/1981089-todd">View all my reviews</a></p>
<br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tmgirvin.wordpress.com/30/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tmgirvin.wordpress.com/30/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gofacebook/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tmgirvin.wordpress.com/30/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gotwitter/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tmgirvin.wordpress.com/30/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tmgirvin.wordpress.com/30/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tmgirvin.wordpress.com/30/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/tmgirvin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tmgirvin.wordpress.com/30/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&#038;blog=14416035&#038;post=30&#038;subd=tmgirvin&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="http://1.gravatar.com/avatar/f6f9794f022869f90db72ef2dc6ee0cc?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">tmgirvin</media:title>
         </media:content>
         <media:content medium="image" url="http://photo.goodreads.com/books/1327861368m/11084145.jpg">
            <media:title type="html">Steve Jobs</media:title>
         </media:content>
         <category>Book Reviews</category>
      </item>
      <item>
         <title>Job or Joy</title>
         <link>http://tastycupcakes.org/2012/03/job-or-joy/</link>
         <description>In this game, players share their hobbies, tedious chores, and what they like or dislike about work. This enhances your understanding of the participants while uncovering ways to make work more fun.</description>
         <author>Luke Hohmann</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=1972</guid>
         <pubDate>Wed, 21 Mar 2012 23:48:17 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>Timing:</strong></p>
<ul>
<li>1 hour</li>
</ul>
<p><strong>Players (5..8 recommended):</strong></p>
<ul>
<li>You and your colleagues</li>
</ul>
<p><strong>Ingredients:</strong></p>
<ul>
<li>Internet access</li>
</ul>
<p><strong>Directions:</strong><br />
<a rel="nofollow" target="_blank" href="https://innovationgames.com/game_view/instant_play/BQBA1QGAF4HKU3J5VOF5BKDFO3MYSN5J"><img class="alignright size-full wp-image-1973" src="http://tastycupcakes.org/wp-content/uploads/2012/03/Screen-Shot-2012-03-21-at-3.21.27-PM.png" alt="" width="264" height="265"/></a>In this game, players share their hobbies, tedious chores, and what they like or dislike about work. This enhances your understanding of the participants while uncovering ways to make work more fun. Clicking on the image to the right will take you to an <a rel="nofollow" target="_blank" href="http://innovationgames.com/resources/instant-play-games/">“instant play” game</a> at <a rel="nofollow" target="_blank" href="http://innovationgames.com/">innovationgames.com</a>. Here, this image will be used as the “game board,” which categorizes the four different types of activities you and your coworkers do.</p>
<ul>
<li>Quadrant 1: Joy &#8211; work activities that people enjoy (ex. conferences)</li>
<li>Quadrant 2: Hobbies &#8211; activities outside of work that people enjoy (ex. reading, biking, cooking)</li>
<li>Quadrant 3: Chores &#8211; activities outside of work that people don’t enjoy (ex. cleaning)</li>
<li>Quadrant 4: Job &#8211; work activities that people don’t enjoy (ex. mundane office meetings)</li>
</ul>
<p>You will also see two icons in the top left corner:</p>
<ul>
<li>Happy face: what you like to do</li>
<li>Frown face: what you don’t like to do</li>
</ul>
<p>To add the icons, simply drag them to the board and describe what they represent. Everyone can collaborate and edit the placement and description of each image, which can be seen in real time. The results will be organized into a spreadsheet at the end to optimize the benefits of the game.</p>
<p><strong>Key Points:</strong><br />
When people enjoy what they are doing and become engaged through self-motivation, they can push themselves to form innovative ideas and breakthroughs. Their participation is catalyzed by the activity they are involved in and they channel their personal commitment toward achieving the goal. Play <em><a rel="nofollow" target="_blank" href="http://innovationgames.com/job-or-joy/">Job or Joy</a></em> to discover what your colleagues like/dislike to do in order to better understand who they are and how you can all maximize your joy and productivity &#8212; both during and outside of work.</p>]]></content:encoded>
      </item>
      <item>
         <title>Are men from Mars?</title>
         <link>http://door64.com/blog/n/41418</link>
         <description>&lt;p&gt;I used to work on teams where the majority of participants were men.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://door64.com/blog/n/41418"&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">41418 at http://door64.com</guid>
         <pubDate>Wed, 21 Mar 2012 21:01:42 +0000</pubDate>
      </item>
      <item>
         <title>Men may be from Mars, but is it a different planet?</title>
         <link>http://softwareandotherthings.blogspot.com/2012/03/men-may-be-from-mars-but-is-it.html</link>
         <description>&lt;br /&gt;&lt;center&gt;&lt;a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/jprusakova/6320917740/" title="P1050572 by janya, on Flickr"&gt;&lt;img align="center" alt="P1050572" src="http://farm7.staticflickr.com/6106/6320917740_8b40e04d28.jpg" width="400"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The difference in conversational styles continues to stun me.&lt;br /&gt;&lt;br /&gt;I recently attended a reception for a group of highly educated and very successful people. &amp;nbsp;Successful women, including the honoree of the party, who the rest of the&amp;nbsp;attendees&amp;nbsp;were trying to woo, said things like:&lt;br /&gt;- Oh, you probably know more than I do about this&lt;br /&gt;- I can give a lecture, but it's hard to talk about me&lt;br /&gt;- I am not a specialist in this&lt;br /&gt;&lt;br /&gt;While men, even noticeably less successful men, said:&lt;br /&gt;- Oh, but you don't understand&lt;br /&gt;- You are wrong, this is not how it works&lt;br /&gt;and overall did significantly more bragging, even for less momentous achievements.&lt;br /&gt;&lt;br /&gt;Is the difference caused by nature or nurture? &amp;nbsp;If it is nurture, then who is doing the nurturing, and, more importantly, why?&lt;br /&gt;&lt;br /&gt;More practical question: which way is better? &lt;br /&gt;And what is "better" in this context - leads to greater success, allows for more peace of mind, something else?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/jprusakova/5479239297/" title="P1040408 by janya, on Flickr"&gt;&lt;img align="center" alt="P1040408" src="http://farm6.staticflickr.com/5291/5479239297_9b2ea3e9fd.jpg" width="400"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7086785636466343363-2230760399989072036?l=softwareandotherthings.blogspot.com' alt=''/&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-2230760399989072036</guid>
         <pubDate>Tue, 20 Mar 2012 12:43:00 +0000</pubDate>
      </item>
      <item>
         <title>Introducing SWTOR.Parser</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/dFBOvdVm4jQ/</link>
         <description>&lt;p&gt;&lt;img src="http://timrayburn.net/images/swtor.jpg"&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m pleased today to introduce to all of you a new project, &lt;a rel="nofollow" target="_blank" href="https://github.com/trayburn/SWTOR.Parser"&gt;hosted on GitHub&lt;/a&gt;, called &lt;a rel="nofollow" target="_blank" href="https://github.com/trayburn/SWTOR.Parser"&gt;SWTOR.Parser&lt;/a&gt;.  SWTOR.Parser is a C# library to parse the combat logs of Star Wars : The Old Republic that are now available on their Test Server, and will be introduced into the main game in Patch 1.2.  This library at the current time is very simple, it will read from any System.IO.TextReader, and return an IList .  LogEntry and it&amp;#8217;s related classes are a simple C# domain object.  The domain classes are simple POCO classes, and can be easily serialized into JSON or anything else you might want.&lt;/p&gt;

&lt;p&gt;This library does not yet contain any analysis code for analyzing logs, it is just a DLL which handles the parsing.  Over the coming weeks I intend to introduce analysis systems for these log files, and welcome any pull requests to that end, but now that the logs are available publicly on the Test Server I thought it time to make this much public so others do not need to replicate the effort.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re interested in contributing, &lt;a rel="nofollow" target="_blank" href="https://github.com/trayburn/SWTOR.Parser"&gt;fork the project and send me a pull request&lt;/a&gt;.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=dFBOvdVm4jQ:zM15AJ9kPQE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=dFBOvdVm4jQ:zM15AJ9kPQE:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=dFBOvdVm4jQ:zM15AJ9kPQE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=dFBOvdVm4jQ:zM15AJ9kPQE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=dFBOvdVm4jQ:zM15AJ9kPQE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=dFBOvdVm4jQ:zM15AJ9kPQE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=dFBOvdVm4jQ:zM15AJ9kPQE:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/dFBOvdVm4jQ" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/introducing-swtor-dot-parser</guid>
         <pubDate>Mon, 19 Mar 2012 15:50:00 +0000</pubDate>
      </item>
      <item>
         <title>Links for the Day</title>
         <link>http://tmgirvin.com/2012/03/16/links-for-the-day/</link>
         <description>A new SQL Server 2012 overview eBook is available for free: http://blogs.msdn.com/b/microsoft_press/archive/2012/03/15/free-ebook-introducing-microsoft-sql-server-2012.aspx &amp;#160; Today my Outlook got stuck on top of all other windows.&amp;#160; It looks like a problem with a plug-in.&amp;#160; Here’s how to fix that: http://pcmusings.wordpress.com/2010/08/08/does-your-outlook-window-stay-on-top-of-all-other-open-windows/&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&amp;#038;blog=14416035&amp;#038;post=28&amp;#038;subd=tmgirvin&amp;#038;ref=&amp;#038;feed=1" width="1" height="1"/&gt;</description>
         <author>tmgirvin</author>
         <guid isPermaLink="false">https://tmgirvin.wordpress.com/?p=28</guid>
         <pubDate>Fri, 16 Mar 2012 22:05:00 +0000</pubDate>
         <content:encoded><![CDATA[<p>A new SQL Server 2012 overview eBook is available for free: </p>
<p><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/microsoft_press/archive/2012/03/15/free-ebook-introducing-microsoft-sql-server-2012.aspx">http://blogs.msdn.com/b/microsoft_press/archive/2012/03/15/free-ebook-introducing-microsoft-sql-server-2012.aspx</a></p>
<p>&#160;</p>
<p>Today my Outlook got stuck on top of all other windows.&#160; It looks like a problem with a plug-in.&#160; Here’s how to fix that: </p>
<p><a rel="nofollow" title="http://pcmusings.wordpress.com/2010/08/08/does-your-outlook-window-stay-on-top-of-all-other-open-windows/" target="_blank" href="http://pcmusings.wordpress.com/2010/08/08/does-your-outlook-window-stay-on-top-of-all-other-open-windows/">http://pcmusings.wordpress.com/2010/08/08/does-your-outlook-window-stay-on-top-of-all-other-open-windows/</a></p>
<br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tmgirvin.wordpress.com/28/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tmgirvin.wordpress.com/28/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gofacebook/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tmgirvin.wordpress.com/28/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gotwitter/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tmgirvin.wordpress.com/28/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tmgirvin.wordpress.com/28/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tmgirvin.wordpress.com/28/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/tmgirvin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tmgirvin.wordpress.com/28/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tmgirvin.com&#038;blog=14416035&#038;post=28&#038;subd=tmgirvin&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="http://1.gravatar.com/avatar/f6f9794f022869f90db72ef2dc6ee0cc?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">tmgirvin</media:title>
         </media:content>
      </item>
      <item>
         <title>PowerTrip FTW</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/t5V6Z45lHUY/</link>
         <description>&lt;p&gt;&lt;img src="http://timrayburn.net/images/powertrip.jpg"&gt;&lt;/p&gt;

&lt;p&gt;While attending the Microsoft MVP Summit, I was given a gift that I simple must write to you about.  It is called the &lt;a rel="nofollow" target="_blank" href="http://www.powerstick.com/microsite/products/powertrip/"&gt;PowerTrip by PowerStick&lt;/a&gt; and it is the most terribly useful addition to my consulting bag in quite some time.  This device will power and charge up a USB device from an internal battery.  That battery can, in turn, be charged three ways : by USB, by power outlet, or by included solar cell.  As if that was not enough, it has an included USB flash drive, mine has 8gb of internal storage.  It can take an iPhone from zero to full five times on one charge, or extend the life of an iPad by 6 hours.  Simply put, this device is incredible, and has taken the place of all those other USB chargers in my bag.  One charger can cover all my devices, and serve as emergency power when I&amp;#8217;m running low.  &lt;a rel="nofollow" target="_blank" href="http://www.powerstick.com/microsite/products/powertrip/"&gt;Check it out if you&amp;#8217;re even have the gadget fiend that I am.&lt;/a&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=t5V6Z45lHUY:SbkNY3gtQsQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=t5V6Z45lHUY:SbkNY3gtQsQ:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=t5V6Z45lHUY:SbkNY3gtQsQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=t5V6Z45lHUY:SbkNY3gtQsQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=t5V6Z45lHUY:SbkNY3gtQsQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=t5V6Z45lHUY:SbkNY3gtQsQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=t5V6Z45lHUY:SbkNY3gtQsQ:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/t5V6Z45lHUY" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/powertrip-ftw-slash</guid>
         <pubDate>Wed, 14 Mar 2012 04:13:00 +0000</pubDate>
      </item>
      <item>
         <title>Distributed Team Potential Pitfalls – Post #4: Distributed A(a)gile</title>
         <link>http://www.ruralsourceit.com/2012/03/06/distributed-team-potential-pitfalls-post-4-distributed-aagile/</link>
         <description>This is the fourth in a series of posts on Distributed Team Potential Pitfalls.  This post will discuss potential risks when implementing the Agile methodology with Distributed teams. No one will argue that having an Agile team all in the &amp;#8230; &lt;a rel="nofollow" target="_blank" href="http://www.ruralsourceit.com/2012/03/06/distributed-team-potential-pitfalls-post-4-distributed-aagile/"&gt;Continue reading &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Ed Grannan</author>
         <guid isPermaLink="false">http://www.ruralsourceit.com/?p=519</guid>
         <pubDate>Tue, 06 Mar 2012 18:09:24 +0000</pubDate>
         <content:encoded><![CDATA[<p>This is the fourth in a series of posts on Distributed Team Potential Pitfalls.  This post will discuss potential risks when implementing the Agile methodology with Distributed teams.</p>
<p>No one will argue that having an Agile team all in the same place, on the same schedule, and 100% dedicated to the Agile project is the most ideal and most productive.  The immediacy and richness of the communications and interactions cannot be beat by any other method.  There are some whom say that even having a distributed team means you are not Agile.</p>
<p>However, unfortunately, that is not always the most cost effective for a business.  Businesses need to look at the tradeoffs between collocation and the possible delays using a distributed team.  The &#8220;Agile&#8221; in Agile Methodology is capitalized for a reason.  It has been changed from a verb, and the meaning has changed with it.  However, using the Webster Dictionary original agile definitions</p>
<ul>
<li>&#8220;marked by ready ability to move with quick easy grace&#8221;</li>
<li>&#8220;having a quick resourceful and adaptable character&#8221;</li>
</ul>
<p>can be more appropriate for what businesses need from a development team today.  A(a)gile adoption should consider the business needs in the true meaning of the word agile.</p>
<p>That being said, there will be little argument that multiple changes in the way the Agile Methodology is implemented will create a totally different &#8220;SDLC&#8221; environment in which the risks outweigh the benefits.  If having a distributed team is the only variance in the Agile philosophy then time is the only risk which will likely not be obviated.  The other potential risk, quality, can be assured by ensuring that all other Agile values and principles are observed.  Throwing any other Agile guideline by the way side could create more of a cargo cult and the risks start to grow exponentially.</p>
<p>I worked with one distributed team whom thought that the Agile Principle to &#8220;Welcome changing requirements, even late in development&#8221; meant that they didn&#8217;t have to create as many user stories as could possibly be known up front.  They opted to start with a subset of user stories and intentionally wait to write the rest.  Then to compound the challenge, they grouped remaining areas into epics with large story points and then provided a fixed schedule and cost estimate based on a different team&#8217;s velocity.  It didn&#8217;t take long to show, in this example, how the risks compounded.  It didn&#8217;t take long in the life of that project for them to compound as well.</p>
<p>I&#8217;ve seen some companies implement the Agile methodology with teams that have resources whom are only part time on that Agile project.  Again, compounding this with a distributed team environment increases the risk of failure exponentially.  All team members must be able to focus on the project at hand to avoid the time costs of context switching.  Likewise, each team member must be available for all other members at all times. This is even more important on a distributed team.</p>
<p>Obviously, as with any distributed team, there need to be tools and protocols in place at the beginning of the project to help the team communicate and mitigate that risk the distributed team incurs.  (This is discussed in two previous RuralSourceIT blog &#8220;POCs&#8221; and &#8220;Time Zones&#8221;.)  In today&#8217;s technological world there is no reason for distributed team members to not be able to communicate immediately with each other.</p>
<p>If having a distributed-team environment is the only deviation from the Agile Methodology then the risks can be minimized and a project can be successful.</p>
<p>&nbsp;</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Keeping Track?</title>
         <link>http://brandonbarber.net/archives/294</link>
         <description>If you are currently in the job market &amp;#8211; I would encourage you to keep a list of your contacts and companies. So many times I ask candidates which companies or positions they have applied for and they don&amp;#8217;t have any idea. They go on the internet job boards and apply to all the positions they see [...]</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=294</guid>
         <pubDate>Thu, 01 Mar 2012 00:15:18 +0000</pubDate>
         <content:encoded><![CDATA[<p>If you are currently in the job market &#8211; I would encourage you to <strong>keep a list of your contacts and companies</strong>. So many times I ask candidates which companies or positions they have applied for and they don&#8217;t have any idea. They go on the internet job boards and apply to all the positions they see without doing much research on the company.</p>
<p>When you apply to a position or hear about a position, keep track of your opportunities in a Spreadsheet. I would track the date you applied along with the job title and Req ID #.<br />
It is really helplful for any agency recruiters to know where you have applied as well. If you have applied to a position on your own, there is nothing a recruiter can do to help you. Companies are not going to allow for a candidate to be submitted to a job if they have already applied on their own. As most people know, their resume gets lost in the &#8220;black hole&#8221; applicant tracking system.</p>
<p>Additionally, you can look back at your track sheet and do your research through LinkedIn and see who you may know at those companies for another way in.</p>
<p>&nbsp;</p>]]></content:encoded>
      </item>
      <item>
         <title>Nobody’s Perfct</title>
         <link>http://tastycupcakes.org/2012/02/nobodys-perfct/</link>
         <description>This game is aimed to learn from failing.
Just imagine you are on the Daily Standup meeting. Each player brings his issues to the team and also trying to solve issues that are already open.
You will be surprised by patterns of collaborative work and the power of solving issues together with the team.</description>
         <author>Tim Yevgrashyn</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=1933</guid>
         <pubDate>Tue, 28 Feb 2012 22:46:58 +0000</pubDate>
         <content:encoded><![CDATA[<p>This game is aimed to learn from failing.</p>
<p>Just imagine you are on the Daily Standup meeting. Each player brings his issues to the team and also trying to solve issues that are already open.</p>
<p>You will be surprised by patterns of collaborative work and the power of solving issues together with the team.</p>
<p><strong>Timing:</strong><br />
40-60 minutes.<br />
If you use timeboxed iterations, this could run faster, otherwise game ends when there are no cards left.</p>
<p><strong>Materials:</strong><br />
Deck of playing cards (option, take the deck from 6 to A). Table for each group of 4-8 participants.</p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2012/02/nobodys-perfct/nobodys_perfct_cheat_sheet/">Nobody&#8217;s Perfct &#8211; instructor&#8217;s cheat sheet</a></p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2012/02/nobodys-perfct/nobodys_perfct_hands_out/">Nobody&#8221;s Perfct &#8211; hands out</a></p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2012/02/nobodys-perfct/nobodys-perfct-presentation/">Nobody&#8217;s Perfct &#8211; Presentation</a></p>
<p><strong>Instructions:</strong></p>
<p>Draw the rule- and mindset on a flipchart paper (or spread the Handout, see attached)</p>
<p>Let the audience play in groups of 4 – 8 people per group</p>
<ul>
<li>If you have more than 4 people, let them play in pairs or as singles.</li>
<li>If you have a larger audience, get a facilitator from each group (ScrumMaster?) who has to watch out that rules are followed and a discussion happens. If you apply timeboxing he’s to take care of it as well.</li>
</ul>
<p>Every player gets a set of 4 cards.</p>
<ul>
<li>Every card type represents an Issue/Failure (blacks) or a Solution (reds), which could be Technical (Cross &amp; Diamonds) or Social (Clubs &amp; Hearts). See the attached handout for details.</li>
</ul>
<p>In his/her turn each player can</p>
<ol>
<li>Start with the heaviest problem. Play the card. Explain the problem.</li>
<li>If you have a solution or a small step in the right direction: play the card, explain your approach.</li>
<li>If you are not able to do anything more you’re done.</li>
<li>Fill up to 4 cards from the stack. It’s the next players turn.</li>
</ol>
<p>Play in iterations (10 Minutes / Iteration). That allows you to extend the rules stepwise.</p>
<ul>
<li>Start with closed hands.</li>
<li>Extension: introduce the pile of wisdom.</li>
<li>Extension: play openly</li>
<li>Extension: if a group is missing something valuable for them, allow them to introduce another rule given by themselves</li>
</ul>
<p>The pile of wisdom is a stack of best practices and “proved” solutions:</p>
<ul>
<li>If you face a problem on the desk and you are not able to cover it with a card on your hand you are allowed to take a card from the pile of wisdom. Take the first card on top and try to solve a given problem with it.</li>
<li>Once a problem is solved put it to the pile of resolved problems and put the solutions to the pile of wisdom (on top if solved out of hand, on bottom if solved from pile of wisdom). Only the last solution is visible.</li>
</ul>
<div><strong>Learning Points:</strong></div>
<p>This game makes people comfortable with bringing their failures to the team and solving them together. Make a good debriefing with learning from different aspects of the game (playing open, having a &#8220;pile of wisdom&#8221; and etc.)</p>
<p>Cards are used only as a medium &#8211; make sure people bring examples each time they play a card. Discussion is a most valuable part of the game.</p>
<p><strong>Creadits:</strong></p>
<p>Ellen Grove, Martin Heider, Holger Koschek, Timofey Yevgrashyn</p>
<p>&#8230; with a lot of help from Antti Kirjavainen, Nancy van Schooenderwoert and Björn Jensen</p>]]></content:encoded>
      </item>
      <item>
         <title>Apprentices Update</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/BnQ-KTf4jz4/</link>
         <description>&lt;p&gt;Some time ago, &lt;a rel="nofollow" target="_blank" href="http://timrayburn.net/blog/apprenticeship-a-journey-begins/"&gt;I wrote about taking my first apprentice&lt;/a&gt; but I&amp;#8217;ve been very lax about keeping you my dear readers up to date on how that has gone.  To sum up the previous post, in January of 2011 I took an Apprentice by the name of Chris Jackson.  I&amp;#8217;d known him for decades, literally, and he wanted to break into the programming career path.  So we set out on a time-boxed experiment.  6 months to see if we could get him employable.&lt;/p&gt;

&lt;p&gt;Well, in June of 2011, Chris Jackson accepted a position with ThinkFinance as an entry level developer.  His annual income quadrupled on the day he signed the paperwork, moving from $13K to over $50k/year.  All credit to Chris, this was his doing.  He put in the hours, he dealt with my berating him about not grasping topics quickly enough, and in the end he succeeded.  All reports are that Chris is doing very well at ThinkFinance, and I&amp;#8217;m very happy about that.  As anyone in the industry knows, getting your foot in the door is the hardest part and I was thrilled to see him get an offer from his very first interview.&lt;/p&gt;

&lt;p&gt;So what&amp;#8217;s the secret sauce?  Looking back on it, several things played key factors in his success.  Some of them were my doing, others were Chris&amp;#8217;, others were luck.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I focused the curriculum on current, market desirable skills.  This made Chris an entry level developer who could write an ASP.NET MVC 3 website, talk intelligently about SOLID, know what an IoC container was and how to use it, and talk about his experiences with Test Driven Development.&lt;/li&gt;
&lt;li&gt;There was an existing relationship between Chris and I which allowed me the latitude to address things directly and sometimes confrontational while knowing we would still part friends.  It is my belief that anyone can do alone what Chris and I did together, but sometimes our own failings are the reason why we don&amp;#8217;t.  If I&amp;#8217;m going to accept someone into this type of relationship, I need the latitude to confront personality flaws that might be holding them back.&lt;/li&gt;
&lt;li&gt;Chris put in the hard work, period, full stop.  8 hours per week of sessions with me, plus homework assignments.&lt;/li&gt;
&lt;li&gt;I required that his spouse, Lynda-Jo, be on board for this before we began.  The time commitment was substantial, and without a spouse&amp;#8217;s support he was going to fail.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;So if there is a secret sauce, I think it&amp;#8217;s somewhere in that list of things above.  I&amp;#8217;ve gone on and accepted two more apprentices since then, Mark Rayburn and Cody Fails.  Mark is my brother, and Cody is his best friend.  Like Chris Jackson, they&amp;#8217;re smack in the middle of learning the fundamentals, but unlike him I&amp;#8217;ve had to start with the very basics of computing.  Chris Jackson had a couple of years of college education in Computer Science behind him, Mark and Cody do not.  It&amp;#8217;s a new challenge, but we&amp;#8217;ll see how they do.  I full well realize that eventually, no matter how careful I am, one of my apprentices will not succeed in the transition of careers.  But the upside of transforming someone&amp;#8217;s life is so huge, that I&amp;#8217;m compelled to continue.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=BnQ-KTf4jz4:80LzVkCGH7Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=BnQ-KTf4jz4:80LzVkCGH7Y:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=BnQ-KTf4jz4:80LzVkCGH7Y:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=BnQ-KTf4jz4:80LzVkCGH7Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=BnQ-KTf4jz4:80LzVkCGH7Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=BnQ-KTf4jz4:80LzVkCGH7Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=BnQ-KTf4jz4:80LzVkCGH7Y:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/BnQ-KTf4jz4" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/apprentices-update</guid>
         <pubDate>Sun, 26 Feb 2012 16:36:00 +0000</pubDate>
      </item>
      <item>
         <title>Where at MVP Summit is Tim Rayburn</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/R3Fx6QAR04U/</link>
         <description>&lt;p&gt;&lt;span class='pullquote-right'&gt;
The MVP Summit is coming up next week, and it is always a fantastic time to network and get caught up with my friends literally from around the world.  One of the big challenges of Summit is just finding people, so this post will serve as the guidepost of how to find me at Summit.  First and foremost is FourSquare, I&amp;#8217;ll post whenever I arrive at a location.  Even if I&amp;#8217;m not allowed to disclose why I&amp;#8217;m somewhere, because of NDA topics, I can discuss that I&amp;#8217;m somewhere, like &amp;#8220;Building 92 on the MSFT Campus&amp;#8221;.  But beyond that, there are several public events which I can disclose I&amp;#8217;ll be at, so lets list those out.
&lt;/span&gt;&lt;/p&gt;

&lt;h1&gt;Agenda&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Sunday

&lt;ul&gt;
&lt;li&gt;9:30ish - Land at SEATAC Airport&lt;/li&gt;
&lt;li&gt;12:30 - &lt;a rel="nofollow" target="_blank" href="http://www.bluecsushi.com/default.aspx?ID=43"&gt;Improving Sushi at Blue C Sushi&lt;/a&gt;  &amp;#8230; I love sushi, so does Devlin Liles my fellow Improving employee and Blue C Sushi in Bellevue is awesome.  This is open to one and all, join me if you&amp;#8217;d like sushi or conversation or both.  Your sushi bill is your own, but we&amp;#8217;re fun people.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Monday

&lt;ul&gt;
&lt;li&gt;18:00 till 21:00 - &lt;a rel="nofollow" target="_blank" href="https://www.eventbrite.com/orderconfirmation/2871674255/71508107"&gt;Party with Palermo&lt;/a&gt; &amp;#8230; This is open to anyone who registers, so register at the link, MVP or not.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Tuesday

&lt;ul&gt;
&lt;li&gt;20:00 till Who Knows - &lt;a rel="nofollow" target="_blank" href="https://github.com/blog/1059-bellevue-wa-drinkup"&gt;GitHub Drinkup hosted by Phil Haack&lt;/a&gt; &amp;#8230; This is open to the public, even if you&amp;#8217;re not an MVP come on by!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Wednesday

&lt;ul&gt;
&lt;li&gt;7:00 - 9:00 - &lt;a rel="nofollow" target="_blank" href="http://blog.pluralsight.com/2012/02/09/pluralsight-author-and-recruiting-breakfast-at-the-mvp-summit/"&gt;Pluralsight Author Breakfast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;18:00 till Who Knows - ChezNeward private party&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Thursday

&lt;ul&gt;
&lt;li&gt;19:00 till Who Knows - Attendee Party&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Friday

&lt;ul&gt;
&lt;li&gt;11:00 - &lt;a rel="nofollow" target="_blank" href="http://www.bluecsushi.com/default.aspx?ID=43"&gt;Improving Sushi at Blue C Sushi Part 2&lt;/a&gt; &amp;#8230; Gotta get my last fix of good sushi in before tripping back to the landlocked Dallas/Fort Worth area.&lt;/li&gt;
&lt;li&gt;14:00ish - Takeoff from SEATAC Airport&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=R3Fx6QAR04U:41V5WwKO7Qo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=R3Fx6QAR04U:41V5WwKO7Qo:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=R3Fx6QAR04U:41V5WwKO7Qo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=R3Fx6QAR04U:41V5WwKO7Qo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=R3Fx6QAR04U:41V5WwKO7Qo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=R3Fx6QAR04U:41V5WwKO7Qo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=R3Fx6QAR04U:41V5WwKO7Qo:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/R3Fx6QAR04U" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/where-at-mvp-summit-is-tim-rayburn</guid>
         <pubDate>Fri, 24 Feb 2012 15:22:00 +0000</pubDate>
      </item>
      <item>
         <title>LinkedIn</title>
         <link>http://brandonbarber.net/archives/288</link>
         <description>Is your PROFILE up to date on LinkedIn? This is becoming the #1 tool for recruiters to find you. If you are searching for a new position or testing the market, make sure you have your LinkedIn Profile up to date. As you may or may not know, there is a feature called INMAIL that [...]</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=288</guid>
         <pubDate>Thu, 23 Feb 2012 00:52:47 +0000</pubDate>
         <content:encoded><![CDATA[<p><em><strong>Is your PROFILE up to date on LinkedIn?</strong></em> This is becoming the #1 tool for recruiters to find you.</p>
<p>If you are searching for a new position or testing the market, make sure you have your <strong>LinkedIn Profile</strong> up to date. As you may or may not know, there is a feature called INMAIL that recruiters can use if they have paid a monthly fee<br />
for upgraded service. However, if you want to be found, follow these tips.</p>
<ol>
<li>Fill out the <strong>SUMMARY</strong> section with your career highlights and specialties.</li>
<li>If you are out of work, put something like &#8220;Searching for next Software Development position&#8221; in your headline</li>
<li>Under <strong>SPECIALTIES</strong>, make sure you list your tools, technologies, etc</li>
<li>Under each job, list your keywords, technologies, and tools AGAIN &#8211; we use these keywords to find you.</li>
<li>Make sure your latest employer is on the profile along with job duties</li>
<li>There is now a new section called &#8220;Skills and Expertise&#8221; that you can add to your profile. This allows you a choice of keywords.</li>
<li>Ask your network for recommendations from previous jobs.</li>
<li>Most importantly, under <strong>CONTACT</strong> &#8211;  list your contact email and make sure it is up to date if you would like employers or recruiters to find you. So often I see that email addresses are listed from previous employers and not up to date. If you don&#8217;t mind phone calls, list your number there too.</li>
<li>Post presentations, talks, or powerpoint slides using BOX.NET to show prospective employers your skills and abilities.</li>
<li>JOIN as many relevant GROUPS as you can, participant in industry discussions as much as possible.</li>
</ol>
<p><a rel="nofollow" title="Recruiters Lounge - LinkedIn" target="_blank" href="http://www.therecruiterslounge.com/2012/02/17/headhunters-lament-why-dont-job-seekers-use-linkedin-correctly/?utm_source=twitterfeed&amp;utm_medium=twitter&amp;utm_campaign=Feed%3A+JimStroud20+%28JimStroud%27s+The+Recruiters+Lounge%29">HERE</a> is another article that helps you utilize LinkedIn in the right way on the Recruiter&#8217;s Lounge</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
      </item>
      <item>
         <title>How to be an Improver</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/ao0FIwZqkag/</link>
         <description>&lt;p&gt;&lt;img src="http://timrayburn.net/images/ie-logo-small.jpg"&gt;&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;ve every met me, or hung around me for any length of time, you&amp;#8217;ve probably heard me rave about my employer &lt;a rel="nofollow" target="_blank" href="http://improvingenterprises.com"&gt;Improving Enterprises&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://timrayburn.net/blog/improving-myself/"&gt;just a few&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://timrayburn.net/blog/work-for-the-best-hellip-pity-the-rest/"&gt;times before&lt;/a&gt;.  Here are some things you may have heard about us:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You may have heard that we employ the best, and we do, from &lt;a rel="nofollow" target="_blank" href="http://driventodevelop.com/"&gt;David O&amp;#8217;Hara&lt;/a&gt; to &lt;a rel="nofollow" target="_blank" href="http://devlinliles.com/"&gt;Devlin Liles&lt;/a&gt; to &lt;a rel="nofollow" target="_blank" href="http://www.castleproject.org/community/team.html"&gt;Craig Neuwirt&lt;/a&gt;, and many more.&lt;/li&gt;
&lt;li&gt;You may have heard that we&amp;#8217;re now growing beyond Texas, and we are.  Offices are located in Dallas, College Station, Columbus Ohio, and growing presences in Houston and other areas.&lt;/li&gt;
&lt;li&gt;You may have heard that we were voted #1 Best Place To Work by the Dallas Business Journal this year.  We also have been named to the &lt;a rel="nofollow" target="_blank" href="http://www.improvingenterprises.com/2012/02/02/improving-among-best-places-to-work-in-texas-again/"&gt;Texas Monthly Best Place To Work In Texas&lt;/a&gt;, at number 5.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;So why am I telling you all of this again?  Because Improving is looking for some more Improvers.&lt;/p&gt;

&lt;h2&gt;What is an Improver?&lt;/h2&gt;

&lt;p&gt;&lt;span class='pullquote-right'&gt;
Those of us who work for this company have come to call ourselves Improvers.  That little gerund that is our name is something we hold very dear.  Our company motto is &amp;#8220;Improving : It&amp;#8217;s What We Do&amp;#8221; and that alone is the thread which ties together the amazingly diverse collection of people who work at this company.  Some of our technologists are literally world renowned, others are fresh out of school.  Some work in Java or .NET, others are Project Managers or Quality Assurance analysts.  But we are all united by the fact that we are constantly striving to improve.
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class='pullquote-right'&gt;
If you&amp;#8217;re someone who is passionate about Improving yourself, then I&amp;#8217;d like to talk to you.  We&amp;#8217;re looking to grow the number of consultants in Dallas, Houston, and Columbus, OH.  We&amp;#8217;re looking for QA, PM, and Devs working in .NET, Java and Android.  If you&amp;#8217;re interested in being an Improver, then send me an email to Tim@TimRayburn.net and we&amp;#8217;ll get you started on the journey.
&lt;/span&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=ao0FIwZqkag:d0UzePQr-BM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=ao0FIwZqkag:d0UzePQr-BM:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=ao0FIwZqkag:d0UzePQr-BM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=ao0FIwZqkag:d0UzePQr-BM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=ao0FIwZqkag:d0UzePQr-BM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=ao0FIwZqkag:d0UzePQr-BM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=ao0FIwZqkag:d0UzePQr-BM:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/ao0FIwZqkag" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/how-to-be-an-improver</guid>
         <pubDate>Tue, 21 Feb 2012 21:34:00 +0000</pubDate>
      </item>
      <item>
         <title>Finishing Up The Cookbook</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/baOLhhLQvoA/</link>
         <description>&lt;p&gt;&lt;img class="left" src="http://timrayburn.net/images/efcookbook.jpg" title="s Cookbook" alt="Our Book"&gt;While it has not been discussed here a great deal, my good friend &lt;a rel="nofollow" target="_blank" href="http://devlinliles.com"&gt;Devlin Liles&lt;/a&gt; and I have been writing a book together.  It&amp;#8217;s called &lt;a rel="nofollow" target="_blank" href="http://www.amazon.com/Entity-Framework-4-1-Experts-Cookbook/dp/1849684464/ref=sr_1_1?ie=UTF8&amp;amp;qid=1329713927&amp;amp;sr=8-1"&gt;&amp;#8220;Entity Framework 4.1 : Expert&amp;#8217;s Cookbook&amp;#8221;&lt;/a&gt;.  I will be clear upfront, Devlin did the lion&amp;#8217;s share of the work on this book, but the finished product is something which I am totally proud to be associated with.&lt;/p&gt;

&lt;p&gt;When we set out on the journey to write this book, we agreed that it was our primary goal to convey an approach to using Entity Framework which would be consistent with the type of code we would want to see in our production systems.  To that end, every recipe in the book is approached in a test driven fashion, and our first job is to setup the necessary abstractions around Entity Framework to ensure that it is testable, yet performant.  I believe we have accomplished that goal.&lt;/p&gt;

&lt;p&gt;The book is going through it&amp;#8217;s final edits now, and we are hopefully that it will be available sometime soon, I&amp;#8217;ll keep you updated here as things develop.&lt;/p&gt;

&lt;p&gt;I believe that Devlin and I would also both like to take a moment and thank our amazing wives, Christina and Kate, who have suffered through this experiment with us.  I&amp;#8217;m not certain if Devlin and I will publish another large tome like this again, but I am certain we will collaborate on other projects &amp;#8230; focused on helping you &lt;a rel="nofollow" target="_blank" href="http://ImprovingEnterprises.com"&gt;improve&lt;/a&gt;.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=baOLhhLQvoA:XNWpbfn3dzc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=baOLhhLQvoA:XNWpbfn3dzc:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=baOLhhLQvoA:XNWpbfn3dzc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=baOLhhLQvoA:XNWpbfn3dzc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=baOLhhLQvoA:XNWpbfn3dzc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=baOLhhLQvoA:XNWpbfn3dzc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=baOLhhLQvoA:XNWpbfn3dzc:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/baOLhhLQvoA" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/finishing-up-the-cookbook</guid>
         <pubDate>Mon, 20 Feb 2012 04:55:00 +0000</pubDate>
      </item>
      <item>
         <title>Converted to Octopress</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/K94BuZPUvio/</link>
         <description>&lt;p&gt;For those who actually visit my blog on a regular basis, you&amp;#8217;ll have noticed that there have been alot of changes over the last couple of months.  For some time now I&amp;#8217;ve been unhappy with my blogging platform, which up until recently had been Graffiti a platform formerly by Telligent.  Graffiti started out with amazing promise, and then &amp;#8230; nothing.  It was never updated, and eventually was made open source, but without a primary contributor it just died.&lt;/p&gt;

&lt;p&gt;&lt;span class='pullquote-right'&gt;
In the midst of this, I realized that my opinions of why my blog exists had changed.  I&amp;#8217;ve never had many comments, and my blog is not the place to discuss my content, it&amp;#8217;s the place to post my content.  Facebook, Twitter, and other social areas are where content is discussed and I&amp;#8217;m fine with that.  To that end, I wanted to get out of the business of dealing with comments, policing them (even with automated tools), etc.  So I researched my options and came to the opinion that I wanted my blog to be hosted as a GitHub repository.  You can host a blog on GitHub?!  You sure can, and it&amp;#8217;s awesome. About a month ago I converted to being a GitHub based blog, but today I&amp;#8217;ve taken the additional step of using the amazing &lt;a rel="nofollow" target="_blank" href="http://octopress.org/"&gt;Octopress&lt;/a&gt; project.
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Now that I&amp;#8217;ve completed this, you can expect updates on a more regular basis, including updates on my Apprenticeship projects, my upcoming book, and much much more.  Stay tuned for more details.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=K94BuZPUvio:vKfvd8C-UbY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=K94BuZPUvio:vKfvd8C-UbY:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=K94BuZPUvio:vKfvd8C-UbY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=K94BuZPUvio:vKfvd8C-UbY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=K94BuZPUvio:vKfvd8C-UbY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=K94BuZPUvio:vKfvd8C-UbY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=K94BuZPUvio:vKfvd8C-UbY:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/K94BuZPUvio" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/converted-to-octopress</guid>
         <pubDate>Sun, 19 Feb 2012 18:30:00 +0000</pubDate>
      </item>
      <item>
         <title>Command Line FTW!</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/aUtgHuVR9Ho/</link>
         <description>&lt;blockquote&gt;&lt;p&gt;TL;DR Summary : BASH command line to extract the most often repeated line of text from a log file: &lt;em&gt;cat filename.log &amp;#92;| sort &amp;#92;| uniq -c &amp;#92;| sort -nr&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I was reading some blog posts by my friend &lt;a rel="nofollow" target="_blank" href="http://truncatedcodr.wordpress.com/"&gt;Cori Drew&lt;/a&gt; who is in the process of changing into a command line user, when I realized I&amp;#8217;ve been doing some very cool log analysis recently which I should blog about.  I&amp;#8217;ve have two different situations recently in which I was thrust into analyzing log files.  The first was a web site which was throwing logging large numbers of exceptions in production which were not happening in lower environments.  The second was a performance challenge, attempting to determine which indexes would be best applied to a Mongo database.&lt;/p&gt;

&lt;p&gt;In the first challenge, I had a log file composed mostly of .NET stack traces, and I they seemed to be from &amp;#8220;all over the place&amp;#8221;, no one component being the source of the exceptions.  But I suspected that some component was shared in common between these various exceptions, so I realized I wanted to do the following things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sort the lines of the file, so all the duplicates were next to each other.&lt;/li&gt;
&lt;li&gt;Get a count of each distinct lines number of repeats.&lt;/li&gt;
&lt;li&gt;Find the line which repeated the most often.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Now I&amp;#8217;ve been in this programming field for a long time now, and it has taught me some very important lessons, the first and most important is that if you&amp;#8217;re manipulating long files of text, a DOS prompt is not the place to do it, and neither is a GUI.  So I openned my handy-dandy BASH shell which I use for GIT, and other stuff.  After a little bit of google&amp;#8217;ing, I realized that I had everything I needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sort - sorts lines of a file&lt;/li&gt;
&lt;li&gt;uniq -c - counts all the unique lines, and puts the count at the front of each line of the output.&lt;/li&gt;
&lt;li&gt;sort -nr - sorts, backwards, with numeric rules (hence sorting the numbers put in by uniq)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This worked fantastically well, and quickly isolated to a base class on our security attributes of the MVC application as the true source of the exceptions in the application.  When just a week later the second situation occurred, having to analyze the logs of a mongod process for often executed queries, in hopes of finding good candidates for indexing, I returned to my command line friend and after a minor modification had exactly what I was looking for.&lt;/p&gt;

&lt;p&gt;What was the minor modification?  The use of some &lt;a rel="nofollow" target="_blank" href="http://cheat.errtheblog.com/s/sed/"&gt;sed&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://cheat.errtheblog.com/s/grep"&gt;grep&lt;/a&gt; commands to remove everything other than query output, and then remove info from each line about the connection it was performed on, so that  I had a clean list of queries.  The final command for the Mongo analysis looked like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cat mongo.log | grep "runQuery" | sed 's/ &amp;#92;[conn[0-9]*&amp;#92;]//' | sed 's/[A-Za-z]* [A-Za-z]* [0-9]* [0-9]*:[0-9]*:[0-9]* //' | sort | uniq -c | sort -nr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Simple eh?  No?  You might want to follow those links on &lt;a rel="nofollow" target="_blank" href="http://cheat.errtheblog.com/s/grep"&gt;grep&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://cheat.errtheblog.com/s/sed/"&gt;sed&lt;/a&gt; then.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=aUtgHuVR9Ho:-DLjBkt36bk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=aUtgHuVR9Ho:-DLjBkt36bk:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=aUtgHuVR9Ho:-DLjBkt36bk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=aUtgHuVR9Ho:-DLjBkt36bk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=aUtgHuVR9Ho:-DLjBkt36bk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=aUtgHuVR9Ho:-DLjBkt36bk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=aUtgHuVR9Ho:-DLjBkt36bk:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/aUtgHuVR9Ho" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/Command-Line-FTW</guid>
         <pubDate>Mon, 13 Feb 2012 06:00:00 +0000</pubDate>
      </item>
      <item>
         <title>Edition Wars</title>
         <link>http://feedproxy.google.com/~r/TimRayburnsBlog/~3/g--Kbx2ZI9Y/</link>
         <description>&lt;p&gt;For some time now I&amp;#8217;ve been loosely affiliated with the &lt;a rel="nofollow" target="_blank" href="http://d20radio.com"&gt;D20 Radio Network&lt;/a&gt;, a network of podcasts for gamers, and about things gamers care about.  That network was started by some outstandingly creative folks who I&amp;#8217;m thrilled to call friends.  They&amp;#8217;ve recently announced that they have founded a &lt;a rel="nofollow" target="_blank" href="https://www.facebook.com/thegamernation"&gt;Game Studio&lt;/a&gt; to help bring cool, innovative, amazing games to the market.  The first of these, is &lt;a rel="nofollow" target="_blank" href="http://www.kickstarter.com/projects/435243061/edition-wars-by-gamer-nation-studios"&gt;Edition Wars&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Edition Wars is a fun-filled, tongue-in-check standalone strategy card game for 3-5 players, where you become a Gamemaster slavishly devoted to your edition of the game! In the effort to champion your edition, you will compete to be the first to assemble a complete group of six Gamers. But this simple task is complicated by the fact that the other Gamemasters are trying to steal your Gamers out from under you! You can respond in kind, defend your existing Gamers with the standard attacks of Snark, Blog, and Merch; as well as equip yourself with special gear and toss about instant critical effects, all of which will aid you on your epic quest to edition supremacy! Let the Edition Wars begin&amp;#8230;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I&amp;#8217;d like to strongly encourage all of my friends to think about supporting this &lt;a rel="nofollow" target="_blank" href="http://www.kickstarter.com/projects/435243061/edition-wars-by-gamer-nation-studios"&gt;Kickstarter project&lt;/a&gt;.  Go check it out, read the rules, and then throw them a few bucks to help them get off the ground.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=g--Kbx2ZI9Y:RVzYN2df8EI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=g--Kbx2ZI9Y:RVzYN2df8EI:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=g--Kbx2ZI9Y:RVzYN2df8EI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=g--Kbx2ZI9Y:RVzYN2df8EI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=g--Kbx2ZI9Y:RVzYN2df8EI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/TimRayburnsBlog?a=g--Kbx2ZI9Y:RVzYN2df8EI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TimRayburnsBlog?i=g--Kbx2ZI9Y:RVzYN2df8EI:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TimRayburnsBlog/~4/g--Kbx2ZI9Y" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://timrayburn.net/blog/Edition-Wars</guid>
         <pubDate>Sun, 12 Feb 2012 06:00:00 +0000</pubDate>
      </item>
   </channel>
</rss><!-- fe2.yql.bf1.yahoo.com compressed/chunked Sun Jun  3 22:32:34 UTC 2012 -->

