<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>YTechie.com &#187; Uncategorized</title>
	<atom:link href="http://www.ytechie.com/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ytechie.com</link>
	<description>Productive software development using ASP.NET, C#, Adobe Flex, and other technologies and tools.</description>
	<lastBuildDate>Fri, 06 Nov 2009 21:16:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tip for Technical Presentations &#8211; Detailed Notes</title>
		<link>http://www.ytechie.com/2009/05/tip-for-technical-presentations-detailed-notes.html</link>
		<comments>http://www.ytechie.com/2009/05/tip-for-technical-presentations-detailed-notes.html#comments</comments>
		<pubDate>Mon, 18 May 2009 18:10:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2009/05/tip-for-technical-presentations-detailed-notes.html</guid>
		<description><![CDATA[Justin Etheredge over at CodeThinked is asking for tips for technical presentations. I can certainly relate to his experiences. Technical presentations, or any type of presentation for that matter, can be intimidating, difficult, and scary.
&#160; 
In my college days, I had to give a presentation in one of my information systems classes. I was pretty [...]]]></description>
			<content:encoded><![CDATA[<p>Justin Etheredge over at CodeThinked is <a href="http://www.codethinked.com/post/2009/05/18/A-Technical-Presenters-Journey-Part-1-Know-Your-Audience.aspx" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.codethinked.com/post/2009/05/18/A-Technical-Presenters-Journey-Part-1-Know-Your-Audience.aspx?referer=');">asking for tips for technical presentations</a>. I can certainly relate to his experiences. Technical presentations, or any type of presentation for that matter, can be intimidating, difficult, and scary.</p>
<p>&#160;<img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Presentation" border="0" alt="Presentation" src="http://www.ytechie.com/post-images/2009/05/presentation.jpg" width="301" height="200" /> </p>
<p>In my college days, I had to give a presentation in one of my information systems classes. I was pretty arrogant back then (ok, I still am), so I thought it would be a piece of cake to just wing it. I could save time and look like a cool speaker all at the time time. The result was me getting in front of the class, having my face turn red, and basically say “uh” and “um” for 10 minutes. It was so bad that people actually began to laugh. It pains me to even write about it.</p>
<p>A semester later, I had to give another presentation to an even bigger class. I was so nervous I can’t even describe it. I spent hours upon hours making creating a “script” that I could simply read. The result was that I actually didn’t even use the script. I actually knew what the hell I was talking about and ended up using the script as a reference. I did a great job speaking!</p>
<p>So how do I prepare for presentations these days? I have detailed notes, formatted specifically for the presentation. On my slides, I always keep the number of bullet points per slide low, usually 4 or less. In my notes, I organize them by bullet point so that I can walk though them while I go over each bullet point. <strong>I try to balance simplify with detail. </strong>The notes have to be <strong>simple</strong> enough to read quickly, but <strong>detailed</strong> enough that I can just read them out loud if I lose focus and forget the purpose. Bolding keywords and phrases can help quickly identify the key concepts while still having a readable version if needed.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Slide with Notes" border="0" alt="Slide with Notes" src="http://www.ytechie.com/post-images/2009/05/image1.png" width="481" height="348" /> </p>
</p>
<p>I’ve seen many presentations where the speaker gets nervous and forgets what a slide or bullet point means. The usual remedy they employ is just reading the slide verbatim. Don’t let this happen to you. <strong>It is almost certain that you’ll forget a critical piece of information during your presentation. The trick is to be ready for it.</strong></p>
<p>In my most recent <a href="http://www.ytechie.com/2009/04/speaking-at-day-of-net-at-fox-valley-tech.html">presentation (on Unit Testing)</a>, I actually wrote a paper on the topic I was presenting on. This allowed me to get all of my thoughts in order, and get feedback from others. Once I actually had to put together the PowerPoint, that was the easy part. I was basically creating an outline from an existing document, and the details became my notes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2009/05/tip-for-technical-presentations-detailed-notes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension Methods &amp; Single Responsibility Principle</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html</link>
		<comments>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comments</comments>
		<pubDate>Mon, 26 Jan 2009 13:08:33 +0000</pubDate>
		<dc:creator>superjason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html</guid>
		<description><![CDATA[Extension methods were a new feature in .NET 3.0 (they are also supported by the 2.0 CLR). The single responsibility principle (SRP) is a strategy for structuring our code to make it more maintainable and testable. In this post, I&#8217;m going to discuss how we can use extension methods to make our code easier to [...]]]></description>
			<content:encoded><![CDATA[<p>Extension methods were a new feature in .NET 3.0 (they are also supported by the 2.0 CLR). The single responsibility principle (SRP) is a strategy for structuring our code to make it more maintainable and testable. In this post, I&#8217;m going to discuss how we can use extension methods to make our code easier to read and satisfy the idea behind SRP.</p>
<p>As I mentioned, extension methods were a new feature in .NET 3.0, and they&#8217;re <a href="http://www.danielmoth.com/Blog/2007/05/using-extension-methods-in-fx-20.html" target="_blank" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.danielmoth.com/Blog/2007/05/using-extension-methods-in-fx-20.html?referer=');">compatible with the 2.0 CLR</a>. They&#8217;re backwards compatible because they&#8217;re simply a compiler trick. In fact, you may already have methods that are only one step away from being considered extension methods.</p>
<p>Here is a method that is <strong>not an extension method</strong> (we&#8217;ll come back to those in a bit):</p>
<p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:16c8c224-06cf-44ce-9c30-00d4ca8bfba3" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">public static Report GenerateReport(ReportData data)
{
	//Create a report from the report data
}</pre>
</div>
<p>A method like this is useful because it avoids cluttering another class with unrelated functionality. Imagine the opposite situation in which case the report data class is responsible for the data in the report, as well as the formatting of the report. The <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle" target="_blank" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Single_responsibility_principle?referer=');">single responsibility principle</a> tells us that we should separate the operations so that each class has only one reason to change. In practice, I have personally seen the advantages in code maintainability, readability, and testability. I won&#8217;t delve deeply into the supporting information in this post.</p>
<p>So how do extension methods come into play? As I mentioned, they&#8217;re simply a compiler trick. If we wanted to convert the aforementioned static method into an extension method, we simply add the &#8220;this&#8221; keyword before the first parameter, which is the type that our method is acting on:</p>
<p><div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ec9ec51e-fc7b-4147-b2b4-44e0605aa42e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">public static Report GenerateReport(this ReportData data)
{
	//Create a report from the report data
}</pre>
</div>
<p>Now we&#8217;ve added an additional way to call our method:</p>
<p><div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:76b8ace3-072b-42c6-a075-385df63730cc" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">var reportData = new ReportData();

//Old way of calling - still works in either case
var r = GenerateReport(reportData);
//New way of calling with extension method
var r = reportData.GenerateReport();</pre>
</div>
<p>Our method still works the way it always did when it was static, but now we have an additional way to call it. It&#8217;s also important to note that the extension method doesn&#8217;t have any extra permissions in regards to accessing the other class. It has to use its publicly exposed interface. In fact, if we wanted to rely simply on the interface instead of the implementation, we could modify our extension data to work on an interface such as IReportData.</p>
<p>The entire reason that extension methods exist is to make the calling syntax easier to read. The driving force was the new LINQ functionality. In particular, chaining the old static method syntax quickly becomes cumbersome.</p>
<p>The new extension method syntax allows us to make the calling code more elegant, and yet organize our methods so that there are clear boundaries between the pieces of functionality that we&#8217;re wiring together. Extension methods are obviously not always the best way to follow SRP, but they certainly give you a new tool in your toolbox.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Generic Method Overloading Selection Pitfall</title>
		<link>http://www.ytechie.com/2009/01/generic-method-overloading-selection-pitfall.html</link>
		<comments>http://www.ytechie.com/2009/01/generic-method-overloading-selection-pitfall.html#comments</comments>
		<pubDate>Fri, 02 Jan 2009 15:42:37 +0000</pubDate>
		<dc:creator>superjason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2009/01/generic-method-overloading-selection-pitfall.html</guid>
		<description><![CDATA[Recently I ran into a very unexpected behavior when working with an overloaded generic method. Basically, the selection process for overloaded versions of generic methods is different than their non-generic counterparts.
First, lets look at how a regular overloaded method signature is matched. Consider the following methods:

public void a(object obj)
{}

public void a(IEnumerable enumerable)
{}

If we call the [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I ran into a very unexpected behavior when working with an overloaded generic method. Basically, the selection process for overloaded versions of generic methods is different than their non-generic counterparts.</p>
<p>First, lets look at how a regular overloaded method signature is matched. Consider the following methods:</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:93ce4982-b9d1-4a90-891e-0e71847a8cb5" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">public void a(object obj)
{}

public void a(IEnumerable enumerable)
{}</pre>
</div>
<p>If we call the method &#8220;a&#8221; with a class that implements IEnumerable such as an array or a List, the <strong>second</strong> version will be called. Basically, the compiler matches the method that is the most specific.</p>
<p>Now, consider the generic versions of the same methods:</p>
</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:4a55c4aa-2141-459a-8169-26b62ab9c29f" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">public void a&lt;T&gt;(T obj)
{}

public void a&lt;T&gt;(IEnumerable&lt;T&gt; enumerable)
{}</pre>
</div>
<p>Now, if we pass in a generic list such as &#8220;List&lt;string&gt;&#8221;, you might expect the second version to be called. Unfortunately, you would be <strong>wrong</strong>. The first version of the method is called. There are two ways to force the second version to be used:
</p>
</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:bbf00244-70e4-43b8-b0c2-a52d16268774" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">a((IEnumerable&lt;string&gt;)new List&lt;string&gt;());
a&lt;string&gt;(new List&lt;string&gt;());</pre>
</div>
<p>As you can see, you can either cast the generic list specifically to a generic IEnumerable, or you can specify the type parameter on the generic method.</p>
<p>What you&#8217;re seeing is a subtle difference in the way method overloading is handled with generic methods vs non-generic methods. Standard method overloading picks the match at compile time, and chooses the most specific, or &#8220;best&#8221; match. When you don&#8217;t specify a type parameter for a generic call, it type inference to determine the correct signature to call. Unfortunately, it chooses the most direct route, not the most specific match.</p>
<p><strong>Workarounds</strong></p>
<p>I&#8217;ve already mentioned the ways that you can work around this issue by modifying the way that you make the call to the generic method. Unfortunately, you&#8217;re relying on knowledge that the caller must have. If you want to avoid ambiguity, do not use standard method overloading. You can see that the authors of Linq to SQL must have ran into the same issue. Take a look at &#8220;<a href="http://msdn.microsoft.com/en-us/library/system.data.linq.itable.insertonsubmit.aspx" target="_blank" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/system.data.linq.itable.insertonsubmit.aspx?referer=');">InsertOnSubmit</a>&#8221; vs &#8220;<a href="http://msdn.microsoft.com/en-us/library/system.data.linq.itable.insertallonsubmit.aspx" target="_blank" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/system.data.linq.itable.insertallonsubmit.aspx?referer=');">InsertAllOnSubmit</a>&#8220;. If it was easy to use method overloading for that scenario, that would have been a great opportunity for simplification.</p>
<p><strong>Conclusion</strong></p>
<p>I recommend being very careful when overloading generic methods. There are a lot of hidden side-effects that can occur. I also recommend checking out another post, which talks about the <a href="http://shiman.wordpress.com/2008/07/07/generic-method-overload-a-trap-for-c-net-library-developers/" target="_blank" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/shiman.wordpress.com/2008/07/07/generic-method-overload-a-trap-for-c-net-library-developers/?referer=');">effects of overloading non-generic methods with generic methods</a>. Don&#8217;t be ambiguous when writing code that other developers may call. Make your code easy to use, but also clear as to which code path will be taken.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2009/01/generic-method-overloading-selection-pitfall.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Working with content areas in code behind</title>
		<link>http://www.ytechie.com/2008/04/working-with-content-areas-in-code-behind.html</link>
		<comments>http://www.ytechie.com/2008/04/working-with-content-areas-in-code-behind.html#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:53:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/working-with-content-areas-in-code-behind.html</guid>
		<description><![CDATA[In my master page, I have a ContentPlaceHolder defined:
&#60;asp:ContentPlaceHolder runat=&#34;server&#34; ID=&#34;AfterScripts&#34;&#62;
&#60;/asp:ContentPlaceHolder&#62;
In the page, I have the content defined:
&#60;asp:Content runat=&#34;server&#34; ID=&#34;conTrackingScripts&#34; ContentPlaceHolderID=&#34;AfterScripts&#34;&#62;
    &#60;!-- Blah --&#62;
&#60;/asp:Content&#62;
Unfortunately, this code does not work:
conTrackingScripts.Visible = false;
The error given is &#34;The name &#8216;conTrackingScripts&#8217; does not exist in the current context. A quick Google search shows that many others [...]]]></description>
			<content:encoded><![CDATA[<p>In my master page, I have a ContentPlaceHolder defined:</p>
<pre class="xml" name="code">&lt;asp:ContentPlaceHolder runat=&quot;server&quot; ID=&quot;AfterScripts&quot;&gt;
&lt;/asp:ContentPlaceHolder&gt;</pre>
<p>In the page, I have the content defined:</p>
<pre class="xml" name="code">&lt;asp:Content runat=&quot;server&quot; ID=&quot;conTrackingScripts&quot; ContentPlaceHolderID=&quot;AfterScripts&quot;&gt;
    &lt;!-- Blah --&gt;
&lt;/asp:Content&gt;</pre>
<p>Unfortunately, this code does not work:</p>
<pre class="c-sharp" name="code">conTrackingScripts.Visible = false;</pre>
<p>The error given is &quot;The name &#8216;conTrackingScripts&#8217; does not exist in the current context. A quick Google search shows that many others have had the same issue. The solution is to use the following code instead:</p>
<pre class="c-sharp" name="code">(Master as MasterPage).FindControl(&quot;AfterScripts&quot;).Visible = false;</pre>
<p>Substitute the name of your master page for &quot;MasterPage&quot;, and the name of your ContentPlaceHolder for &quot;AfterScripts&quot; in the above code</p>
<p>It appears that you cannot edit properties on the content, you have to edit the ContentPlaceHolder directly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/working-with-content-areas-in-code-behind.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET output caching by user agent</title>
		<link>http://www.ytechie.com/2008/04/aspnet-output-caching-by-user-agent.html</link>
		<comments>http://www.ytechie.com/2008/04/aspnet-output-caching-by-user-agent.html#comments</comments>
		<pubDate>Mon, 14 Apr 2008 15:47:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/aspnet-output-caching-by-user-agent.html</guid>
		<description><![CDATA[I received this question from ObiShawn:
&#34;Does .NET/IIS output caching vary by user-agent?&#34;
Good question Shawn! By default, the output cache stores the same version of the page for all users, regardless of their user agent. To change this behavior, add the VaryByHeader parameter to your OutputCache declaration:
&#60;%@ OutputCache Duration=&#34;60&#34; VaryByParam=&#34;*&#34; VaryByHeader=&#34;User-Agent&#34;  %&#62;
This is probably a [...]]]></description>
			<content:encoded><![CDATA[<p>I received this question from <a href="http://www.Obishawn.com" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.Obishawn.com?referer=');">ObiShawn</a>:</p>
<p>&quot;Does .NET/IIS output caching vary by user-agent?&quot;</p>
<p>Good question Shawn! By default, the output cache stores the same version of the page for all users, <strong>regardless</strong> of their user agent. To change this behavior, add the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.outputcacheparameters.varybyheader.aspx" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/msdn2.microsoft.com/en-us/library/system.web.ui.outputcacheparameters.varybyheader.aspx?referer=');">VaryByHeader</a> parameter to your OutputCache declaration:</p>
<pre class="xml" name="code">&lt;%@ OutputCache Duration=&quot;60&quot; VaryByParam=&quot;*&quot; VaryByHeader=&quot;User-Agent&quot;  %&gt;</pre>
<p>This is probably a good idea to include in your OutputCache directive, because ASP.NET will <a href="http://msdn2.microsoft.com/en-us/library/x3k2ssx2(VS.80).aspx" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/msdn2.microsoft.com/en-us/library/x3k2ssx2_VS.80_.aspx?referer=');">render controls differently to some browsers</a>. It modify the output HTML based on the browsers capabilities. </p>
<p>If your site is only targeting the latest generation of browser, you can probably avoid varying by user agent. </p>
<p>One last note. You can include multiple headers in the VaryByHeader parameter. Simply separate them with semi-colons. </p>
<p>For more information about OutputCaching, <a href="http://aspnet.4guysfromrolla.com/articles/022802-1.aspx" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/aspnet.4guysfromrolla.com/articles/022802-1.aspx?referer=');">this is a great article</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/aspnet-output-caching-by-user-agent.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ext2IFS Can&#8217;t read a drive from a RAID array</title>
		<link>http://www.ytechie.com/2008/04/ext2ifs-cant-read-a-drive-from-a-raid-array.html</link>
		<comments>http://www.ytechie.com/2008/04/ext2ifs-cant-read-a-drive-from-a-raid-array.html#comments</comments>
		<pubDate>Mon, 07 Apr 2008 02:11:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/ext2ifs-cant-read-a-drive-from-a-raid-array.html</guid>
		<description><![CDATA[I converted my Ubuntu home server to a Windows 2008 Server. The biggest challenge of the conversion was the 400GB RAID 1 array, which was Linux software RAID based. I threw caution to the wind, and figured that I could convert it after installing Windows Server 2008.
I was sort of banking on the fact that [...]]]></description>
			<content:encoded><![CDATA[<p>I converted my Ubuntu home server to a Windows 2008 Server. The biggest challenge of the conversion was the 400GB RAID 1 array, which was <a href="http://tldp.org/HOWTO/Software-RAID-HOWTO.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/tldp.org/HOWTO/Software-RAID-HOWTO.html?referer=');">Linux software RAID</a> based. I threw caution to the wind, and figured that I could convert it <em>after </em>installing Windows Server 2008.</p>
<p>I was sort of banking on the fact that I could use the <a href="http://www.fs-driver.org/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.fs-driver.org/?referer=');">Ext2 installable file system</a> for Windows to read one of the drives in the array. For some reason, it was unable to read the disk. I had assumed that since the drives were simply mirrors of each other, it would be able to read one by itself. I was wrong.</p>
<p>My solution was to create an <a href="http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.ubuntu.com/products/WhatIsUbuntu/desktopedition?referer=');">Ubuntu Desktop</a> <a href="http://www.vmware.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.vmware.com/?referer=');">virtual machine</a>, and use it to mount the physical partition. I was then able to copy the files over the virtual network adapter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/ext2ifs-cant-read-a-drive-from-a-raid-array.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How does your boss know you&#8217;re doing a great job?</title>
		<link>http://www.ytechie.com/2008/04/how-does-your-boss-know-youre-doing-a-great-job.html</link>
		<comments>http://www.ytechie.com/2008/04/how-does-your-boss-know-youre-doing-a-great-job.html#comments</comments>
		<pubDate>Wed, 02 Apr 2008 00:50:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/how-does-your-boss-know-youre-doing-a-great-job.html</guid>
		<description><![CDATA[In my last post, I talked about how your boss might have no choice but to judge your performance simply by the number of hours you work. Now I&#8217;m going to talk about some ways to change that.
 
If you&#8217;re boss is gauging your performance based on the amount of time your butt is in [...]]]></description>
			<content:encoded><![CDATA[<p>In my last post, I talked about how your boss might have no choice but to judge your performance simply by the number of hours you work. Now I&#8217;m going to talk about some ways to change that.</p>
<p align="center"><img height="212" alt="Good Job!" src="/post-images/2008/04/good-job.png" width="319" border="0"/> </p>
<p>If you&#8217;re boss is gauging your performance based on the amount of time your butt is in your chair, you have a BIG problem. He obviously doesn&#8217;t have a good understanding of what it is that you do. Obviously the short term solution is to figure out how to keep your butt in the chair longer for appearances. For example, come in earlier and catch up on the latest tech news. You may have been doing this at home, but why not get credit for it? The extra time you put in is also great for &#8220;playing&#8221; with the tools you use. It&#8217;s a good time to find out the most efficient ways to use them, so that you don&#8217;t have to get out of the zone when you&#8217;re working on something important.</p>
<p>Of course the long term solution is to change your bosses perception. Here are a few ways to do this:</p>
<ul>
<li>Let your boss share your pain. When you are running into hard problems, make sure he is aware of it. It might seem a little cruel, but if you don&#8217;t do it, he might not understand why you spent a week on something and have nothing to show for it.  </li>
<li>If you&#8217;re excited about something, tell your boss about it. He might just get excited about it too.  </li>
<li>In small talk situations with your boss, that&#8217;s a good time to give an update, but keep it short.  </li>
<li>In software development, there are changes that the average person would think are very easy. Your boss needs to be aware of when situations like that arise.  </li>
<li>Email weekly status reports to the tem. If you&#8217;re busy, this can be a good place to put some of the above suggestions instead of talking face to face. Your boss will appreciate your enthusiasm, especially if this is something that is not normally expected of you. It also serves as a good project history for him, yourself, and the rest of the team.</li>
</ul>
<p>Also understand that your boss may need to report your progress to his boss. Be mindful of that, and try to boil down some of the information so that it can simply be repeated instead of being interpreted. Remember that anyone in the chain of command up to the President are interested in what you&#8217;re working on. The higher up you go, the more summarized the information needs to be. If you have opportunities to speak with them, you always want to be seen as passionate and motivated. It could very well affect a decision that they&#8217;ll have to make one day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/how-does-your-boss-know-youre-doing-a-great-job.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
