<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>jaredpar's WebLog : Misc</title><link>http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx</link><description>Tags: Misc</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Presentation Follow up</title><link>http://blogs.msdn.com/jaredpar/archive/2008/10/29/presentation-follow-up.aspx</link><pubDate>Wed, 29 Oct 2008 15:00:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021651</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/9021651.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=9021651</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=9021651</wfw:comment><description>&lt;p&gt;Thanks to everyone who showed up at the &lt;a href="http://blogs.msdn.com/jaredpar/archive/2008/10/23/presenting-at-net-developers-association-meeting-oct-27.aspx"&gt;presentation on monday&lt;/a&gt;.&amp;#160; For those interested, I've uploaded the contents of the presentation &lt;a href="http://cid-dc25b20f65f628f8.skydrive.live.com/self.aspx/Public/Linq%20Presentation"&gt;here&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;I was unable to upload the large DB file used during the demo due to size limitations (sky drive will only let me upload a 50 MB file).&amp;#160; But better than wasting both mine and your bandwidth, I included the script used to generate the db file.&amp;#160; &lt;/p&gt;  &lt;p&gt;The file is a powershell script named GenerateDb.ps1.&amp;#160; If you pass the -argLarge switch, it will generate the 120MB demo file.&lt;/p&gt;  &lt;p&gt;PS&amp;gt;.\GenerateDb.ps1 -argLarge&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9021651" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>Presenting at Net Developers Association Meeting Oct 27</title><link>http://blogs.msdn.com/jaredpar/archive/2008/10/23/presenting-at-net-developers-association-meeting-oct-27.aspx</link><pubDate>Fri, 24 Oct 2008 04:22:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9012553</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/9012553.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=9012553</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=9012553</wfw:comment><description>&lt;p&gt;I will be presenting at the &lt;a href="http://www.netda.net/Static.aspx"&gt;Net Developers Associating&lt;/a&gt; meeting this upcoming Monday.&amp;#160; If you're interested in hearing me ramble on in person please drop by.&amp;#160; &lt;/p&gt;  &lt;p&gt;Event Details:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;When: Oct 27 7:00PM &lt;/li&gt;    &lt;li&gt;Where: Microsoft Building 40: The Steptoe Room (&lt;a href="http://maps.live.com/OneClickDirections.aspx?mkt=en-us&amp;amp;rtp=~pos.47.63652099774846_-122.1333360671997&amp;amp;FORM=LLMP"&gt;Map&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;Who: Me &lt;/li&gt;    &lt;li&gt;Why: Blogging's fun but it's great to go out and talk to people in person &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My talk will center around how to get the most out of a LINQ query.&amp;#160; I'll be covering a lot of the misunderstood aspects of LINQ such as deferred execution.&amp;#160; Most bit of the talk will focus on the &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc721610.aspx"&gt;MSDN article&lt;/a&gt; I wrote a few months back.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9012553" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Talks/default.aspx">Talks</category></item><item><title>Community Interview</title><link>http://blogs.msdn.com/jaredpar/archive/2008/10/17/community-interview.aspx</link><pubDate>Fri, 17 Oct 2008 15:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9001097</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/9001097.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=9001097</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=9001097</wfw:comment><description>&lt;p&gt;Recently I did a community interview with Microsoft MVP &lt;a href="http://community.visual-basic.it/Alessandro/"&gt;Alessandro Del Sole&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;The Italian version can be read &lt;a href="http://community.visual-basic.it/alessandro/archive/2008/10/15/23937.aspx"&gt;here.&lt;/a&gt;&amp;#160; And no, I don’t speak Italian.&amp;#160; The original transcript is below.&lt;/p&gt;  &lt;p&gt;1. Nice to meet you Jared Parsons! Let’s begin by asking a simple question: where are you from?&lt;/p&gt;  &lt;p&gt;Born in Kentucky, raised in Tennessee, lived in Alabama for awhile, then back to Tennessee and went to college in Georgia. Usually I simplify it by saying I grew up all over the southeast. &lt;/p&gt;  &lt;p&gt;2. We all know that you’re a Visual Basic Team member, but could we know something more about your role inside the Team?&lt;/p&gt;  &lt;p&gt;I’m a developer in the VB team. I started out on the VB Compiler several years ago. Towards the end of Visual Studio 2008 I switched to the VB expression evaluator (aka debugger, watch, immediate window). This role expanded to other parts of the VB IDE experience including a lot of features users will be (hopefully) really excited about for the next release of Visual Studio.&lt;/p&gt;  &lt;p&gt;3. What’s your favorite Visual Basic feature regarding the language and/or the IDE?&lt;/p&gt;  &lt;p&gt;My favorite VB feature is usually whatever I’m implementing at the moment I’m asked this questionJ. Luckily I’m in between features at the moment so I can give an unbiased answer. XML Literals are my favorite VB feature. It really allows me to seamlessly integrate my data and queries into my application. I feel like I find a new way to use it every day.&lt;/p&gt;  &lt;p&gt;4. How long have you been working for Microsoft and what was your occupation before joining the VB Team?&lt;/p&gt;  &lt;p&gt;I’ve been working at Microsoft for 4 ½ years now. I joined Microsoft immediately after college in the in the Visual Studio Team System division. More specifically I was a developer on Team Developer and Team Architect. After shipping Visual Studio 2005 I was eager for new challenges. I spent a good deal of my time in college working on low level systems and being a teaching assistant for an introduction to compiler courses. I was interested in getting back to these roots. A job opened up on the VB compiler team and it was the perfect fit.&lt;/p&gt;  &lt;p&gt;5. Why do you think VB is such a great language?&lt;/p&gt;  &lt;p&gt;We have a tie here: flexibility and IDE. VB is an amazingly flexible language. It lends itself to whatever task I’m trying to do. On one end of the spectrum I have XML literals to work with my data and at the other end generics and lambda expressions to really geek out on a problem. The IDE support is also very good (I promise I’m not biased here). It’s really difficult to express everything the IDE offers to the programmer. The best way to understand though is to get out notepad and try and code up a VB application. That will really give you a handle on what the IDE is doing for you.&lt;/p&gt;  &lt;p&gt;6. Have you ever been to Italy?&lt;/p&gt;  &lt;p&gt;No but it’s definitely on the list of places to visit.&lt;/p&gt;  &lt;p&gt;7. Would you like to tell us something about your life outside the office (how do you like to spend your free time, what do you like to do when/if you go out in the evening or when you’re at home and so on)?&lt;/p&gt;  &lt;p&gt;Outside of work I still lead a largely geek lifestyle; lots of programming, blogging and book reading. I do manage to leave my geek role by playing a variety of sports. Right now I’m playing soccer (indoor and outdoor), softball and football. I’m not very picky when it comes to sports. As long as it’s athletic and preferably outdoors I’m there. It’s a great way to get release after a day of programming.&lt;/p&gt;  &lt;p&gt;Of course there is the occasional Rock Band party as well.&lt;/p&gt;  &lt;p&gt;8. Who is your favorite musician?&lt;/p&gt;  &lt;p&gt;Much to my parent’s disappointment, I don’t have an ear for music (read that as 100% tone deaf). As a consequence my taste for music is … bad according to my friends. I prefer to think of it as blissful ignorance. On that note (pun intentional) I love a good punk album or some techno while coding. &lt;/p&gt;  &lt;p&gt;9. What’s your favorite food?&lt;/p&gt;  &lt;p&gt;The hands down winner here is French Fries.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9001097" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>stackoverflow: a new addiction</title><link>http://blogs.msdn.com/jaredpar/archive/2008/10/10/stackoverflow-a-new-addiction.aspx</link><pubDate>Fri, 10 Oct 2008 15:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8977157</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8977157.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8977157</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8977157</wfw:comment><description>&lt;P&gt;If you haven't visited &lt;A class="" title=stackoverflow.com href="http://stackoverflow.com/" mce_href="http://stackoverflow.com/"&gt;stackoverflow.com&lt;/A&gt; yet I encourage you to take a trip.&amp;nbsp; It's a great tag based newsgroup system.&amp;nbsp; Check it out.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8977157" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>PInvoke Interop Assistant on Channel 9</title><link>http://blogs.msdn.com/jaredpar/archive/2008/09/11/pinvoke-interop-assistant-on-channel-9.aspx</link><pubDate>Thu, 11 Sep 2008 15:00:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8936056</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8936056.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8936056</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8936056</wfw:comment><description>&lt;p&gt;Beth Massi dropped by my office a couple of months ago and we did a channel 9 video on the &lt;a href="http://www.codeplex.com/clrinterop"&gt;PInvoke Interop Assistant&lt;/a&gt;.&amp;#160; Mainly an overview of the product and a bit of a tutorial.&amp;#160; Check out the video here.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://channel9.msdn.com/posts/funkyonex/The-P-Invoke-Interop-Assistant/" href="http://channel9.msdn.com/posts/funkyonex/The-P-Invoke-Interop-Assistant/"&gt;http://channel9.msdn.com/posts/funkyonex/The-P-Invoke-Interop-Assistant/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8936056" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/PInvoke/default.aspx">PInvoke</category><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>5 things Hollywood thinks computers can do</title><link>http://blogs.msdn.com/jaredpar/archive/2008/08/27/5-things-hollywood-thinks-computers-can-do.aspx</link><pubDate>Wed, 27 Aug 2008 15:05:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8892353</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8892353.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8892353</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8892353</wfw:comment><description>&lt;p&gt;Reading another &lt;a href="http://blog.jtenos.com/blog.aspx?entryId=2d2d412f-e272-46d7-b194-f9e90ae72ba9"&gt;Jtenos' blog&lt;/a&gt;, I came across this article about things Hollywood thinks can be done with computers.&amp;#160; Humorous read.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.cracked.com/article_15229_5-things-hollywood-thinks-computers-can-do.html" href="http://www.cracked.com/article_15229_5-things-hollywood-thinks-computers-can-do.html"&gt;http://www.cracked.com/article_15229_5-things-hollywood-thinks-computers-can-do.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8892353" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>Don't speak geek to your family</title><link>http://blogs.msdn.com/jaredpar/archive/2008/08/20/don-t-speak-geek-to-your-family.aspx</link><pubDate>Wed, 20 Aug 2008 15:00:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8840070</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8840070.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8840070</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8840070</wfw:comment><description>&lt;p&gt;In planning my recent vacation an email thread was started about who would be picking up the groceries.&amp;#160; Most importantly, who would be picking up the drinks.&amp;#160; My brother was quick to volunteer.&amp;#160; I said in no uncertain terms I didn't want any of drinkA [1].&amp;#160; In the past my brother was known to buy large quantities of drinkA.&amp;#160; &lt;/p&gt;  &lt;p&gt;Or at least I thought I said it in no uncertain terms.&amp;#160; As we arrived I opened the fridge to find a large quantity of drinkA.&amp;#160; I stared in disbelief and confronted my brother.&amp;#160; He responded with &amp;quot;yeah, I thought it was weird that your email said to buy that but since you clearly wanted it ...&amp;quot;&amp;#160; After several other family members said the same, I placed the blame on a busy week at work and a simple typo.&amp;#160; &lt;/p&gt;  &lt;p&gt;Luckily my wife brought up the email in question as proof of my mistake.&amp;#160; The line read&lt;/p&gt;  &lt;p&gt;&amp;quot;Jason we want beer.&amp;#160; For the purpose of the beach beer != drinkA&amp;quot;&lt;/p&gt;  &lt;p&gt;To most people reading this entry the meaning is as clear as it can be.&amp;#160; Don't buy drinkA.&amp;#160; Unfortunately the rest of my family are not programmers and read this as an emphatic equals sign.&amp;#160; &lt;/p&gt;  &lt;p&gt;Lesson learned.&lt;/p&gt;  &lt;p&gt;[1] The particular drink in question is not important.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8840070" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>First MSDN article</title><link>http://blogs.msdn.com/jaredpar/archive/2008/08/18/first-msdn-article.aspx</link><pubDate>Mon, 18 Aug 2008 15:00:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8848428</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8848428.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8848428</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8848428</wfw:comment><description>&lt;p&gt;The August issue of MSDN magazine will be carrying an article I wrote this spring.&amp;#160; In it I toy around with using the deferred execution and lazy evaluation properties of LINQ to create more responsive UI code.&amp;#160; &lt;/p&gt;  &lt;p&gt;You can view the article &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc721610.aspx"&gt;here&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;As usual I appreciate any feedback you have.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8848428" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/VB/default.aspx">VB</category><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>ImmutableStack in F#</title><link>http://blogs.msdn.com/jaredpar/archive/2008/08/15/immutablestack-in-f.aspx</link><pubDate>Fri, 15 Aug 2008 15:00:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8847457</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8847457.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8847457</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8847457</wfw:comment><description>&lt;p&gt;When learning a &lt;a href="http://blogs.msdn.com/jaredpar/archive/2008/08/14/learning-a-new-language-f.aspx"&gt;new language&lt;/a&gt; I find it very instructive to re-code certain structures from my well used libraries into the new language.&amp;#160; It gives a great basis for comparison in terms of ease of implementation, expressiveness of the language and sheer ease of implementation.&amp;#160; So on that note I set out today to build an ImmutableStack implementation in F#.&amp;#160; This is based off of my C# implementation in &lt;a href="http://code.msdn.com/rantpack"&gt;RantPack&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Below is the initial implementation.&amp;#160; This is my first non &amp;quot;hello world&amp;quot; data structure in F#.&amp;#160; I found it surprisingly easy to implement and I'm really enjoying the language.&amp;#160; The biggest stumbling block was getting the type union correct and dealing with my compulsion to use &amp;quot;null&amp;quot; for end of stack instead of a value.&amp;#160; &lt;/p&gt;  &lt;p&gt;After playing around with it a bit I'm left with the following questions/hangups.&amp;#160; Most of these will just fall into the category of &amp;quot;I'm starting out with a new language so I'm still hung up on the syntax in places.&amp;quot;&amp;#160; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I consider Node to be an implementation detail and ideally would like to make it a private nested class if possible&lt;/li&gt;    &lt;li&gt;The constructor still allows for invalid data combinations (but will throw)&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Ex: ImmutableStack None ImmutableStack.Empty()&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Can I get ImmutableStack.Empty to be a property instead of a function?&lt;/li&gt;    &lt;li&gt;In All(), that can't be the most efficient way to build up a sequence.&amp;#160; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;/p&gt;  &lt;pre&gt;#light

type Node = 
    | Empty
    | Value of int * ImmutableStack

and ImmutableStack(?v:int, ?n:ImmutableStack) = 
    let data = match (v,n) with
                | (Some v, Some n ) -&amp;gt; Value (v,n)
                | (Some v, None) -&amp;gt; Value (v,ImmutableStack.Empty())
                | (None, None) -&amp;gt; Empty
                | _ -&amp;gt; failwith &amp;quot;invalid combination&amp;quot;
    static member Empty() = ImmutableStack()
    member x.IsEmpty() = 
        match data with
            | Empty -&amp;gt; true
            | _ -&amp;gt; false
    member x.Push(y) =
        match data with 
            | Empty -&amp;gt; ImmutableStack(y, x)
            | Value _ -&amp;gt; ImmutableStack(y, x)
    member x.Peek() =
        match data with
            | Empty -&amp;gt; failwith &amp;quot;ImmutableStack is empty&amp;quot;
            | Value (v,_) -&amp;gt; v
    member x.Pop() =
        match data with 
            | Empty -&amp;gt; failwith &amp;quot;ImmutableStack is empty&amp;quot;
            | Value (_,n) -&amp;gt; n
    member x.All() =
        match data with 
            | Empty -&amp;gt; Seq.empty&lt;int&gt;
            | Value (v,n) -&amp;gt; Seq.append (Seq.singleton v) (n.All())
            
let rec printStack (s:ImmutableStack) =
    match s.IsEmpty() with
        | true -&amp;gt; printfn &amp;quot;Empty&amp;quot;
        | false -&amp;gt; 
            printfn &amp;quot;%d&amp;quot; (s.Peek())
            printStack (s.Pop())

let s1 = ImmutableStack.Empty()
let s2 = s1.Push(42).Push(56).Push(62)
let s3 = ImmutableStack 42
let s4 = s3.Pop()

printStack s1
printStack s2
printStack s3
printStack s4&lt;/pre&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8847457" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/jaredpar/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>Learning a new Language: F#</title><link>http://blogs.msdn.com/jaredpar/archive/2008/08/14/learning-a-new-language-f.aspx</link><pubDate>Thu, 14 Aug 2008 15:00:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8847338</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8847338.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8847338</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8847338</wfw:comment><description>&lt;p&gt;Time again to learn a new language.&amp;#160; I enjoy picking up a new language every now and again.&amp;#160; It's a great way to branch out your skill set and usually leads to new programming techniques in languages that are a part of professional or hobby life.&lt;/p&gt;  &lt;p&gt;But why bother?&amp;#160; The popular languages have a lot of common elements : functions, types, etc ...&amp;#160; With all of the common elements what can learning a new language really give you?&amp;#160; &lt;/p&gt;  &lt;p&gt;It's true that there are a lot of common elements (especially for .Net based languages).&amp;#160; But what really interests me are the features which make the individual language extremely productive.&amp;#160; Most languages have a feature or two that really makes it worth learning.&amp;#160; They greatly increase the productivity of the developer.&amp;#160; Often full libraries are designed around these features.&amp;#160; For instance &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;C++ and&amp;#160; Templates      &lt;ul&gt;       &lt;li&gt;This is somewhat special in that it's extraordinarily powerful for both good and evil &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;VB and late binding &lt;/li&gt;    &lt;li&gt;C# and iterators &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What's great about learning these features is I can often import them into my current heavily used languages.&amp;#160; For instance, even though C#/VB don't directly support functional style programming, I've spent a bit of time over the last few months building libraries that make it fairly easy to incorporate them into either language.&amp;#160; This added a deal of flexibility into my programs and a real functional feel.&amp;#160; &lt;/p&gt;  &lt;p&gt;Lately I've been focusing on immutable/persistant data structures, lambda expressions and tuples.&amp;#160; This makes F# a natural choice for a language to learn.&amp;#160; While I tend to program in a somewhat functional style this will be the first functional language I've heavily invested my time in.&amp;#160; For awhile I did a bit of Haskell but nothing serious.&amp;#160; &lt;/p&gt;  &lt;p&gt;I intend to blog about the joys and not so joyful moments of this process.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8847338" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/jaredpar/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>Vacation</title><link>http://blogs.msdn.com/jaredpar/archive/2008/07/29/vacation.aspx</link><pubDate>Tue, 29 Jul 2008 15:00:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8772567</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8772567.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8772567</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8772567</wfw:comment><description>&lt;p&gt;I'm embarking upon another cross country road trip this week followed by a much needed vacation.&amp;#160; I will be actively blogging during this time (lots of backlogged material to get through) but without a decent internet connection the live blog will be ... quiet.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8772567" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>Live Mesh accepting more users</title><link>http://blogs.msdn.com/jaredpar/archive/2008/07/17/live-mesh-accepting-more-users.aspx</link><pubDate>Thu, 17 Jul 2008 15:00:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8740709</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8740709.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8740709</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8740709</wfw:comment><description>&lt;p&gt;If you haven't tried out live mesh yet I really encourage you to try.&amp;nbsp; It's an amazing well designed product and incredibly useful.&amp;nbsp; &lt;/p&gt; &lt;p&gt;It's still classified as a tech preview but now they are taking on additional users (doubling the current user base in size).&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a title="http://blogs.msdn.com/livemesh/archive/2008/07/16/live-mesh-still-in-tech-preview-but-ready-for-more-users.aspx" href="http://blogs.msdn.com/livemesh/archive/2008/07/16/live-mesh-still-in-tech-preview-but-ready-for-more-users.aspx"&gt;http://blogs.msdn.com/livemesh/archive/2008/07/16/live-mesh-still-in-tech-preview-but-ready-for-more-users.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8740709" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item><item><title>Book Review: Facts and Fallacies of Software Engineering</title><link>http://blogs.msdn.com/jaredpar/archive/2008/06/11/book-review-facts-and-fallacies-of-software-engineering.aspx</link><pubDate>Wed, 11 Jun 2008 15:00:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8582555</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8582555.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8582555</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8582555</wfw:comment><description>&lt;p&gt;I finished reading &lt;a href="http://www.amazon.com/Facts-Fallacies-Software-Engineering-Development/dp/0321117425"&gt;Facts and Fallacies of Software Engineering&lt;/a&gt; a few weeks ago.&amp;#160; This is an excellent book and I recommend it for anyone who's been in the industry for a few years.&amp;#160; &lt;/p&gt;  &lt;p&gt;Typically I don't enjoy books of this type because I feel they are too preachy, written by people who aren't on the front lines and don't understand the day to day problems a programmer will face or are just too long winded.&amp;#160; Neither appears to be the case here.&amp;#160; &lt;/p&gt;  &lt;p&gt;Mr Glass takes a very interesting approach to this book.&amp;#160; In addition to listing good resources for every fact/fallacy he also offers a small (albeit less detailed) section on why people disbelieve in this particular item.&amp;#160; &lt;/p&gt;  &lt;p&gt;Top 3 facts which I think have the most value in my job&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Fact 36: Programmer-created, built-in debug code is an important supplement to testing tools. &lt;/strong&gt;The majority of bugs filed against code I own are not because of an invalid behavior.&amp;#160; It's much more likely that QA will hit an ASSERT I added to the code base which fire before the behavior difference.&amp;#160; What's encouraging is QA will often note: If I ignore the assert everything seems to work alright.&amp;#160; Without a dev assert these bugs would have gone unnoticed until a much bigger problem hit.&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fact 43: Maintenance is a solution not a problem. &lt;/strong&gt; Except for the end of a cycle, I constantly do maintenance work to parts of the code base.&amp;#160; If it's broken, doesn't meet standards, uses bad resource management, etc fix it!&amp;#160; Don't wait for the bug.&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fact 49: Errors tend to cluster. &lt;/strong&gt; Good QA members know this and actively exploit it.&amp;#160; Unfortunately it affects my job since I'm on the receiving end :)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Top 3 facts which I think more people need to take to heart&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Fact 6: New tools and techniques cause an initial loss of productivity/quality. &lt;/strong&gt;Anyone who reads my blog knows that I am a huge tool guy (see the PowerShell tag).&amp;#160; Tools come with a cost though.&amp;#160; As productive as PowerShell and my other bag of tools make me they all came with a price tag.&amp;#160; One that has been paid over many times but the initial ramp up did cost time.&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fact 19: Modification of re-used code is particularly error prone.&amp;#160; &lt;/strong&gt;In my experience the costs of this are typically underestimated.&amp;#160; Mainly because the behavior depended on is not well understood.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fact 38: Rigorous inspections should not replace testing.&amp;#160; &lt;/strong&gt;I heard an engineer say it best on the history channel &amp;quot;One test is worth one thousand expert opinions.&amp;quot;&amp;#160; Inspections mean nothing if they are not backed up by tests.&amp;#160; Even if the inspectors get it right, without a regression test there is no way to guarantee it will stay that way for the future. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Top 3 facts which most surprised me&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Fact 3: Adding people to a late project makes it later&lt;/strong&gt;.&amp;#160; I heard this long before I read the book but I wanted to call it out because I remember just how surprised I was the first time I heard it.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fact 25: Missing requirements are the hardest requirement errors to fix.&amp;#160; &lt;/strong&gt;Falls into the category of &amp;quot;haven't thought about that one but makes sense.&amp;quot;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fact 30: COBOL is a very bad language, but all the others (for business applications) are so much worse&lt;/strong&gt;.&amp;#160; This stems more than anything else from my complete lack of knowledge about COBOL.&amp;#160; It's an often scorned language yet if it was so bad no one used it then no one would complain. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Citation: &lt;/p&gt;  &lt;p&gt;Glass, Robert L.&amp;#160; Facts and Fallacies of Software Engineering. Pearson, Education Inc, 2003&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8582555" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Books/default.aspx">Books</category></item><item><title>Inkpot Color Scheme</title><link>http://blogs.msdn.com/jaredpar/archive/2008/06/02/inkpot-color-scheme.aspx</link><pubDate>Mon, 02 Jun 2008 15:00:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8567972</guid><dc:creator>Jared Parsons</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jaredpar/comments/8567972.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jaredpar/commentrss.aspx?PostID=8567972</wfw:commentRss><wfw:comment>http://blogs.msdn.com/jaredpar/rsscomments.aspx?PostID=8567972</wfw:comment><description>&lt;p&gt;I was reading Charlie's &lt;a href="http://blogs.msdn.com/charlie/archive/2008/05/26/ide-color-schemes-for-the-vs-editor.aspx"&gt;post&lt;/a&gt; on VS Color schemes and thought I would add my favorite to the list.&amp;#160; InkPot is a color setting for vim which I adapted to VS awhile back.&amp;#160; Very easy on the eyes.&amp;#160; &lt;/p&gt;  &lt;p&gt;You can download it &lt;a href="http://rantpack.org/documents/inkpot.vssettings"&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jaredpar/WindowsLiveWriter/InkpotColorScheme_12121/Inkpot_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="223" alt="Inkpot" src="http://blogs.msdn.com/blogfiles/jaredpar/WindowsLiveWriter/InkpotColorScheme_12121/Inkpot_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8567972" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jaredpar/archive/tags/Misc/default.aspx">Misc</category></item></channel></rss>