<?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"
	>

<channel>
	<title>Jay R. Wren - lazy dawg evarlast</title>
	<atom:link href="http://jrwren.wrenfam.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://jrwren.wrenfam.com/blog</link>
	<description>babblings of a computer loving fool</description>
	<pubDate>Sun, 28 Jun 2009 16:47:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>There is more than one way to linq that</title>
		<link>http://jrwren.wrenfam.com/blog/2009/06/28/there-is-more-than-one-way-to-linq-that/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/06/28/there-is-more-than-one-way-to-linq-that/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 16:47:33 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/06/28/there-is-more-than-one-way-to-linq-that/</guid>
		<description><![CDATA[Eric Gunnerson has a post in which he responds to Justin Etheredge regarding “Is Programming A Generic Skill?”
I’ll just say that I agree with them both. There are differences between ability, proficiency and mastery.
A Java programmer can jump into C# and be an able C# programmer immediately. It will take time to become proficient and [...]]]></description>
			<content:encoded><![CDATA[<p>Eric Gunnerson has <a href="http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx">a post</a> in which he responds to Justin Etheredge regarding “<a href="http://www.codethinked.com/post/2009/06/11/Is-Programming-A-Generic-Skill.aspx">Is Programming A Generic Skill?</a>”</p>
<p>I’ll just say that I agree with them both. There are differences between ability, proficiency and mastery.</p>
<p>A Java programmer can jump into C# and be an able C# programmer immediately. It will take time to become proficient and even more time to develop mastery.</p>
<p>I am proof of this with python. I’ve been an able python programmer for over 10 years now(actually closer to 15), but I never spent enough time in python to call myself proficient and I’m certainly far from a master.</p>
<p>But the thing that Eric said which triggered me to write this is not the generic skill discussion with Justin, it is instead a remark that Eric said about Perl, “… because of TMTOWTDI”.</p>
<p>C# is very much becoming afflicted with There is More Than One Way To Do It. It certainly is both the language and library. </p>
<p>Consider LINQ. LINQ to Objects is a new way to do something which everyone has done differently in the past. When new programmers are exposed to linq, I often hear the question “When do I use linq?” The answer I give is typically “whenever you would use a for loop or foreach loop and if you can’t, figure out how you can&quot;.</p>
<p>If we throw away the ‘idiomatic code” to which Eric refers, then a giant bucket of TMTOWTDI is thrown in our face. Do we use properties or fields, events or delegate fields?</p>
<p>For public interfaces, FxCop helps a great deal with guidelines for these things and helping to learn the idioms of the language and framework, but for other things, you are left to yourself. That is why reading others source code is so important. (see the weekly course code)</p>
<p>Expand into libraries and TMTOWTDI explodes. From MSFT alone there is Remoting, Web Services (asmx), WSE, WCF, RIA Services, ASHX, ASP.NET Data Services, all of which have some overlap. Then for data access there is ADO.NET, Linq2Sql, Entity Framework. Even within ADO.NET alone, TMTOWTDI. Do you use a reader? Table Adapter with DataSets? Strongly Typed DataSets?</p>
<p>Open to non MSFT and TMTOWTDI explodes again, to the point where I won’t bother listing anything. There is too much.</p>
<p>I think that library TMTOWTDI will always exist. Even Python has SqlObject, SqlAlchemy and ORM as parts of other frameworks like Zope and Django. But language TMTOWTDI is reasonably well mitigated in Python. This is stated in a single line in PEP20 – The Zen of Python</p>
<blockquote><p><font color="#333333">There should be one—preferably only one –obvious way to do it.</font></p>
</blockquote>
<p>C#, perhaps because it was not a goal and because of its C/Java/Delphi roots, has never had that. There has always been TMTOWTDI in C#.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/06/28/there-is-more-than-one-way-to-linq-that/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How useful are your error messages?</title>
		<link>http://jrwren.wrenfam.com/blog/2009/06/18/how-useful-are-your-error-messages/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/06/18/how-useful-are-your-error-messages/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 19:13:32 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Mono]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/06/18/how-useful-are-your-error-messages/</guid>
		<description><![CDATA[F.cs(334,8): error CS0539: &#8216;I.M&#8217; in explicit interface declaration is not a member of interface      F.cs(20,15): error CS0535: &#8216;C&#8217; does not implement interface member &#8216;I.M(out string)&#8217;

This is a fun example of a poor error message, and I don’t mean because I named my file F, my interface I, my method M [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>F.cs(334,8): error CS0539: &#8216;I.M&#8217; in explicit interface declaration is not a member of interface     <br /> F.cs(20,15): error CS0535: &#8216;C&#8217; does not implement interface member &#8216;I.M(out string)&#8217;</p>
</blockquote>
<p><font color="#777777">This is a fun example of a poor error message, and I don’t mean because I named my file F, my interface I, my method M and my class C.</font></p>
<p><font color="#777777">Its poor because the underlying code looks like this:</font></p>
<p><font color="#777777">interface I { bool M(out string); }</font></p>
<p><font color="#777777">class C:I { void M(out string); }</font></p>
<p>Sure, this is obvious now what is going on, I have void, but I should have bool, but my error message doesn’t include that when it shows the type signature.&#160; Now consider what happens when interface I is in an assembly which is given to me. I do not have its source, and there is no documentation. My means of finding the signature of this method are three fold:</p>
<ol>
<li>lean on visual studio press F12 to go to reference of the interface and VS shows me type signatures</li>
<li>use reflector</li>
<li>monodis mylibrary | grep MethodName</li>
</ol>
<p>I usually use #1, which is probably why I’ve never seen how horrible this compiler error message is until today. Today, I used #3.</p>
<p>* monodis is from Mono</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/06/18/how-useful-are-your-error-messages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Internet Explorer 8 in Windows 7 is Not All Bad</title>
		<link>http://jrwren.wrenfam.com/blog/2009/06/16/internet-explorer-8-in-windows-7-is-not-all-bad/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/06/16/internet-explorer-8-in-windows-7-is-not-all-bad/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:05:01 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Tech]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/06/16/internet-explorer-8-in-windows-7-is-not-all-bad/</guid>
		<description><![CDATA[The number one feature that has been in Opera for longer than I can remember, and in Firefox via add-in or by default for nearly as long, is that of restoring a session when the browser or system crashes.
I lean on this feature. I use browser tabs as a todo list. Sometimes I have to-read [...]]]></description>
			<content:encoded><![CDATA[<p>The number one feature that has been in Opera for longer than I can remember, and in Firefox via add-in or by default for nearly as long, is that of restoring a session when the browser or system crashes.</p>
<p>I lean on this feature. I use browser tabs as a todo list. Sometimes I have to-read tabs open in my browser for only minutes, and other times those to-read tabs are around for weeks and into months.</p>
<p>Internet Explorer was a no-go on this feature, until I noticed it today.</p>
<p>My laptop (I blame hardware – or poor Dell drivers) did not go to sleep when I shut the lid this evening. After a 5 mile bike ride and a 12 mile car ride home in a well insulated back pack, the laptop was frozen and pretty warm when I got home and unpacked. I had to reboot.</p>
<p>As soon as I logged in I remembered that I had left an Internet Explorer window open with something I wanted to read. I cursed because I thought I would have to find it and I usually struggle finding things in browser “history”.</p>
<p>I was surprised when I was greeted with a “restore last session” prompt from Internet Explorer.</p>
<p>Good job on a great feature, Internet Explorer team.</p>
<p>Will I be using IE as my default browser? Absolutely Not. RequestPolicy and NoScript are required browser add-ins for my daily browser usage.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/06/16/internet-explorer-8-in-windows-7-is-not-all-bad/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nmap can open device eth15, but only if you let it</title>
		<link>http://jrwren.wrenfam.com/blog/2009/06/09/nmap-can-open-device-eth15-but-only-if-you-let-it/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/06/09/nmap-can-open-device-eth15-but-only-if-you-let-it/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 00:44:00 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Tech]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/06/09/nmap-can-open-device-eth15-but-only-if-you-let-it/</guid>
		<description><![CDATA[This is here as a note to myself to not be stupid.
I’ve remembered at forgotten this at least 4 times and so that makes me stupid for not remembering.
When nmap on win32 tells you that “dnet: Failed to open device eth15”, it is really suggesting that you run it as administrator.
You need to be administrator [...]]]></description>
			<content:encoded><![CDATA[<p>This is here as a note to myself to not be stupid.</p>
<p>I’ve remembered at forgotten this at least 4 times and so that makes me stupid for not remembering.</p>
<p>When nmap on win32 tells you that “dnet: Failed to open device eth15”, it is really suggesting that you run it as administrator.</p>
<p>You need to be administrator to access the network device at this level.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/06/09/nmap-can-open-device-eth15-but-only-if-you-let-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I can&#8217;t use var in my foreach loop</title>
		<link>http://jrwren.wrenfam.com/blog/2009/06/08/i-cant-use-var-in-my-foreach-loop/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/06/08/i-cant-use-var-in-my-foreach-loop/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 00:15:13 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/06/08/i-cant-use-var-in-my-foreach-loop/</guid>
		<description><![CDATA[A month ago, I asked a coworker to implement IEnumerable&#60;blah&#62; on a blahCollection type that we had implemented back in 1.1. We had only recently moved to the C# 3.0 compiler for this project and I was a little surprised that I wasn’t able to use the var keyword inside a foreach statement of this [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago, I asked a coworker to implement IEnumerable&lt;blah&gt; on a blahCollection type that we had implemented back in 1.1. We had only recently moved to the C# 3.0 compiler for this project and I was a little surprised that I wasn’t able to use the var keyword inside a foreach statement of this type. (I could use it, but it types the object as object instead of a strong type, which is effectively “cannot use it”.)</p>
<p>Its a combination of “we used to implement our own iterators” and the way the foreach finds the GetEnumerator method. foreach doesn’t actually work off of IEnumerable or IEnumerable&lt;T&gt;. It just looks for a GetEnumerator method. So when you implement IEnumerable&lt;T&gt;, foreach won’t find it if it is an explicit implementation. It needs to be an implicit implementation. But this will conflict with the old IEnumerable implementation, and so the change is a break in binary compatibility. Its a small price to pay for use of new language features.</p>
<p>note: Bill Wagner told us all of the above but wrapped it in a &lt;guess&gt; tag when he emailed us.</p>
<p>I wrote a test to show the behavior. Huge thanks to someone (I don’t recall who) in #csharp on freenode who helped me in creating the CompileTimeType method. Its very different to me to use the compiler in this way.</p>
<p>using System;   <br />using System.Collections.Generic;    <br />using System.Collections;    <br />using NUnit.Framework;    <br />namespace Scratch.IEnumerableFixtures    <br />{    <br />&#160;&#160;&#160; [TestFixture]    <br />&#160;&#160;&#160; public class foreachFixture    <br />&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; [Test]    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public void implicitIsStrong()    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach(var item in new I())    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Assert.AreEqual(typeof(int), CompileTimeType(item));    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; [Test]    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public void explicitIsWeak()    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (var item in new E())    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Assert.AreEqual(typeof(object), CompileTimeType(item));    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; [Test]    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public void noInterface()    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (var item in new N())    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Assert.AreEqual(typeof(object), CompileTimeType(item));    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; [Test]    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public void noInterfaceGeneric()    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (var item in new NG())    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Assert.AreEqual(typeof(int), CompileTimeType(item));    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public Type CompileTimeType&lt;T&gt;(T item) { return typeof(T); }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; class I : IEnumerable&lt;int&gt;, IEnumerable    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; public IEnumerator&lt;int&gt; GetEnumerator() { yield return 1; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; IEnumerator IEnumerable.GetEnumerator() { yield return 1; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; class E : IEnumerable&lt;int&gt;, IEnumerable    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; IEnumerator&lt;int&gt; IEnumerable&lt;int&gt;.GetEnumerator() { yield return     <br />1; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; public IEnumerator GetEnumerator() { yield return 1; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; class N { public IEnumerator GetEnumerator() { yield return 1; } }    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; class NG { public IEnumerator&lt;int&gt; GetEnumerator() { yield return     <br />1; } }    <br />&#160;&#160;&#160; }    <br />}</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/06/08/i-cant-use-var-in-my-foreach-loop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Outlook 2007 autodiscover for the rest of us</title>
		<link>http://jrwren.wrenfam.com/blog/2009/06/07/outlook-2007-autodiscover-for-the-rest-of-us/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/06/07/outlook-2007-autodiscover-for-the-rest-of-us/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 22:53:37 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Script]]></category>

		<category><![CDATA[Tech]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/06/07/outlook-2007-autodiscover-for-the-rest-of-us/</guid>
		<description><![CDATA[Outlook 2007 has a new feature which is provided to it by default only by Exchange 2007.
I recently thought of giving Outlook a try instead of Windows Live Mail. Of course, the geek in me wanted my Outlook 2007 first run experience to be awesome. I wanted autodiscover to work for me.
It turns out if [...]]]></description>
			<content:encoded><![CDATA[<p>Outlook 2007 has a new feature which is provided to it by default only by Exchange 2007.</p>
<p>I recently thought of giving Outlook a try instead of Windows Live Mail. Of course, the geek in me wanted my Outlook 2007 first run experience to be awesome. I wanted autodiscover to work for me.</p>
<p>It turns out if you read <a href="http://support.microsoft.com/kb/940881">a KB article</a> and <a href="http://technet.microsoft.com/en-us/library/cc511507.aspx">a technet article</a> you can figure out that for 99% of POP/IMAP/SMTP installations, placing an autodiscover.xml file at a url of <a href="http://myemail.com/autodiscover/autodiscover.xml">http://myemail.com/autodiscover/autodiscover.xml</a> or at <a href="http://autodiscover.myemail.com/autodiscover/autodiscover.xml">http://autodiscover.myemail.com/autodiscover/autodiscover.xml</a> is all that is needed. The format of the xml is very simple.</p>
<p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;   <br />&lt;Autodiscover xmlns=&quot;<a href="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006&quot;">http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006&quot;</a>&gt;    <br />&#160; &lt;Response xmlns=&quot;<a href="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a&quot;">http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a&quot;</a>&gt;    <br />&#160;&#160;&#160; &lt;Account&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;AccountType&gt;email&lt;/AccountType&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;Action&gt;settings&lt;/Action&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;Protocol&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Type&gt;IMAP&lt;/Type&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Server&gt;mail.xmtp.net&lt;/Server&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Port&gt;993&lt;/Port&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SPA&gt;off&lt;/SPA&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SSL&gt;on&lt;/SSL&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;/Protocol&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;Protocol&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Type&gt;SMTP&lt;/Type&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Server&gt;mail.xmtp.net&lt;/Server&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Port&gt;25&lt;/Port&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SPA&gt;off&lt;/SPA&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SSL&gt;on&lt;/SSL&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;UsePOPAuth&gt;on&lt;/UsePOPAuth&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SMTPLast&gt;on&lt;/SMTPLast&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;/Protocol&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;Protocol&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Type&gt;POP3&lt;/Type&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Server&gt;mail.xmtp.net&lt;/Server&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Port&gt;995&lt;/Port&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SPA&gt;off&lt;/SPA&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SSL&gt;on&lt;/SSL&gt;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;    <br />&#160;&#160;&#160;&#160;&#160; &lt;/Protocol&gt;    <br />&#160;&#160;&#160; &lt;/Account&gt;    <br />&#160; &lt;/Response&gt;    <br />&lt;/Autodiscover&gt;</p>
<p>&#160;</p>
<p>Do that, and the next time an Outlook2007 client tries to configure itself, it will.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/06/07/outlook-2007-autodiscover-for-the-rest-of-us/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using the MVPS.ORG Hosts file with ISC Bind</title>
		<link>http://jrwren.wrenfam.com/blog/2009/05/25/using-the-mvpsorg-hosts-file-with-isc-bind/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/05/25/using-the-mvpsorg-hosts-file-with-isc-bind/#comments</comments>
		<pubDate>Tue, 26 May 2009 01:23:30 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Boo]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Mono]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/05/25/using-the-mvpsorg-hosts-file-with-isc-bind/</guid>
		<description><![CDATA[I run my own DNS in our home. You may think this is crazy, but test after test has shown that nearly all ISPs provide substandard DNS to their customers. Even the finest DNS servers are only responsive 95% of the time. With the number of times you use DNS, you could be losing seconds [...]]]></description>
			<content:encoded><![CDATA[<p>I run my own DNS in our home. You may think this is crazy, but test after test has shown that nearly all ISPs provide substandard DNS to their customers. Even the finest DNS servers are only responsive 95% of the time. With the number of times you use DNS, you could be losing seconds or minutes per day while you wait for timeouts and rerequests.</p>
<p>Mvps.org maintains a list of “known bad domains”. While it is certainly not a replacement for other security measures, its another line of defense. It is another tool in the bag. For more reasons, read their site.</p>
<p><a title="http://www.mvps.org/winhelp2002/hosts.htm" href="http://www.mvps.org/winhelp2002/hosts.htm">http://www.mvps.org/winhelp2002/hosts.htm</a></p>
<p>I don’t want to maintain host files on all of my home systems and all of the VMs too, I’d like to just tell my DNS server about these hosts and have it do the right thing.</p>
<p>By combining the downloaded hosts file and using this little boo script to map it into bind config, I have done just that. I use include files to bind. I’ve added a line like this to my /etc/bind/named.conf.local on my ubuntu server</p>
<p>include &quot;/etc/bind/named.conf.mvps&quot;;</p>
<p>Then, I’ve added the output of this boo script to the /etc/bind/named.conf.mvps file. Reload bind and everything is done.</p>
<p>import System.IO   <br />for line as string in [line for line in&#160; @/\n|\r\n/.Split( File.OpenText(&quot;HOSTS&quot;).ReadToEnd() ) if (not line.StartsWith(&quot;#&quot;) and line!=string.Empty and not line.Contains(&quot;localhost&quot;))]:    <br />&#160;&#160;&#160; fields = @/ +/.Split(line)    <br />&#160;&#160;&#160; if (fields.Length &gt; 1):    <br />&#160;&#160;&#160;&#160;&#160; host = fields[1]    <br />&#160;&#160;&#160;&#160;&#160; print &quot;zone \&quot;${host}\&quot; { type master; file \&quot;/etc/bind/db.local\&quot;; };&quot;</p>
<p>Before hand, host resolution looked like this:</p>
<p>$ host ad.a8.net   <br />ad.a8.net has address 203.190.224.60</p>
<p>After reloading bind, it looks like this:</p>
<p> $ host ad.a8.net   <br />ad.a8.net has address 127.0.0.1    <br />ad.a8.net has IPv6 address ::1</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/05/25/using-the-mvpsorg-hosts-file-with-isc-bind/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows 7 Libraries and Search in Explorer</title>
		<link>http://jrwren.wrenfam.com/blog/2009/05/25/windows-7-libraries-and-search-in-explorer/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/05/25/windows-7-libraries-and-search-in-explorer/#comments</comments>
		<pubDate>Mon, 25 May 2009 18:05:00 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Tech]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/05/25/windows-7-libraries-and-search-in-explorer/</guid>
		<description><![CDATA[With Windows 7 at release candidate now, I wanted to review some of my favorite features which were announced 8+ months ago at PDC08.
http://channel9.msdn.com/pdc2008/PC16/
After a little Google searching I found this Search Connector Pack:
http://www.redmondpie.com/search-connectors-for-windows-7-federated-search/
IMO its very cool to have the Wikipedia Search Connector where I can view all of the hits in what is normally [...]]]></description>
			<content:encoded><![CDATA[<p>With Windows 7 at release candidate now, I wanted to review some of my favorite features which were announced 8+ months ago at PDC08.</p>
<p><a title="http://channel9.msdn.com/pdc2008/PC16/" href="http://channel9.msdn.com/pdc2008/PC16/">http://channel9.msdn.com/pdc2008/PC16/</a></p>
<p>After a little Google searching I found this Search Connector Pack:</p>
<p><a href="http://www.redmondpie.com/search-connectors-for-windows-7-federated-search/">http://www.redmondpie.com/search-connectors-for-windows-7-federated-search/</a></p>
<p>IMO its very cool to have the Wikipedia Search Connector where I can view all of the hits in what is normally the files view in Explorer, and view the wikipedia page in the Preview pane (alt-p if you can’t see it).</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2009/05/wikipeida-rss-win7searchconnector-20090524-140347.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Wikipeida_RSS_Win7SearchConnector_2009-05-24_14-03-47" border="0" alt="Wikipeida_RSS_Win7SearchConnector_2009-05-24_14-03-47" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2009/05/wikipeida-rss-win7searchconnector-20090524-140347-thumb.jpg" width="644" height="323" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/05/25/windows-7-libraries-and-search-in-explorer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Sharepoint Services 3.0 x64 SP2 on Server 2008 R2 RC1</title>
		<link>http://jrwren.wrenfam.com/blog/2009/05/24/windows-sharepoint-services-30-x64-sp2-on-server-2008-r2-rc1/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/05/24/windows-sharepoint-services-30-x64-sp2-on-server-2008-r2-rc1/#comments</comments>
		<pubDate>Sun, 24 May 2009 18:09:55 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[Tech]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/05/24/windows-sharepoint-services-30-x64-sp2-on-server-2008-r2-rc1/</guid>
		<description><![CDATA[I’m using Server 2008 R2 RC1 to try out VS2010Beta1 and I wanted to try out some sharepoint development.
It was rather difficult to find the proper download link for WSS for Server 2008 R2. I finally found it here:
http://www.microsoft.com/downloads/details.aspx?FamilyId=9FB41E51-CB03-4B47-B89A-396786492CBA&#38;displaylang=en
(This post is mostly for my own future sanity.)
]]></description>
			<content:encoded><![CDATA[<p>I’m using Server 2008 R2 RC1 to try out VS2010Beta1 and I wanted to try out some sharepoint development.</p>
<p>It was rather difficult to find the proper download link for WSS for Server 2008 R2. I finally found it here:</p>
<p><a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=9FB41E51-CB03-4B47-B89A-396786492CBA&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9FB41E51-CB03-4B47-B89A-396786492CBA&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=9FB41E51-CB03-4B47-B89A-396786492CBA&amp;displaylang=en</a></p>
<p>(This post is mostly for my own future sanity.)</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/05/24/windows-sharepoint-services-30-x64-sp2-on-server-2008-r2-rc1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Browsing NHibernate Source Can Be Beautiful</title>
		<link>http://jrwren.wrenfam.com/blog/2009/05/21/browsing-nhibernate-source-can-be-beautiful/</link>
		<comments>http://jrwren.wrenfam.com/blog/2009/05/21/browsing-nhibernate-source-can-be-beautiful/#comments</comments>
		<pubDate>Thu, 21 May 2009 17:06:04 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2009/05/21/browsing-nhibernate-source-can-be-beautiful/</guid>
		<description><![CDATA[NHibernate is awesome, but when Oren’s blog doesn’t have for what you are looking, and your google-fu is coming up short, it can be challenging to find what you want.
http://nhforge.org – is excellent, but almost never comes up in google searches.
http://nhibernate.sf.net – the sourceforge page redirects to http://nhibernate.org which in turn redirects to the http://hibernate.org [...]]]></description>
			<content:encoded><![CDATA[<p>NHibernate is awesome, but when Oren’s blog doesn’t have for what you are looking, and your google-fu is coming up short, it can be challenging to find what you want.</p>
<p><a href="http://nhforge.org">http://nhforge.org</a> – is excellent, but almost never comes up in google searches.</p>
<p><a href="http://nhibernate.sf.net">http://nhibernate.sf.net</a> – the sourceforge page redirects to <a href="http://nhibernate.org">http://nhibernate.org</a> which in turn redirects to the <a href="http://hibernate.org">http://hibernate.org</a> nhibernate area.</p>
<p>I often want to browse the source. I just need to quickly see what they have done, and I don’t want to open the nhibernate sln on my system.</p>
<p><a title="http://nhibernate.svn.sourceforge.net/viewvc/nhibernate/" href="http://nhibernate.svn.sourceforge.net/viewvc/nhibernate/">http://nhibernate.svn.sourceforge.net/viewvc/nhibernate/</a></p>
<p>I had to hunt around for more than a minute, to find the above url, but rest assured, it is viewvc pointed to nhibernate svn hosted by sourceforge.</p>
<p>If you can’t tell, I love viewvc.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2009/05/21/browsing-nhibernate-source-can-be-beautiful/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
