<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/App_Themes/default/rss.xslt"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:evnet="http://www.mscommunities.com/rssmodule/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Going Deep</title><atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/shows/going+deep/feed/ipod/default.aspx" /><itunes:summary>Charles Torre travels around Microsoft to meet the company’s leading Architects and Engineers to discuss the inner workings of our core technologies. Going Deep is primarily concerned with how things work, why they are designed the way they are, and how they will evolve over time.
</itunes:summary><itunes:author>Erik Porter, Charles, Mike Sampson, Grace Francisco, Brian Keller, Nathan Heskew, dshadle, Dan Fernandez, Duncan Mackenzie, Jeff Sandquist</itunes:author><itunes:subtitle></itunes:subtitle><image><url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url><title>Going Deep</title><link>http://channel9.msdn.com/shows/Going+Deep/</link></image><itunes:image href="http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png" /><itunes:category text="Technology" /><description>Charles Torre travels around Microsoft to meet the company’s leading Architects and Engineers to discuss the inner workings of our core technologies. Going Deep is primarily concerned with how things work, why they are designed the way they are, and how they will evolve over time.
</description><link>http://channel9.msdn.com/shows/Going+Deep/</link><language>en-us</language><pubDate>Wed, 11 Nov 2009 00:32:12 GMT</pubDate><lastBuildDate>Wed, 11 Nov 2009 00:32:12 GMT</lastBuildDate><generator>EvNet (EvNet, Version=1.0.3608.3122, Culture=neutral, PublicKeyToken=null)</generator><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_85_ch9.png" border="0" /&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In &lt;strong&gt;Chapter 8&lt;/strong&gt;, &lt;strong&gt;Functional Parsers&lt;/strong&gt;, it's all about parsing and parsers. A parser is a program that analyses a piece of text to determine its syntactic structure. In a functional language such as Haskell, parsers can naturally be viewed as functions.&lt;br /&gt;
&lt;br /&gt;
  type Parser = String -&amp;gt; Tree&lt;br /&gt;
&lt;br /&gt;
A parser is a function that takes a string and returns some form of tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;b&gt;Chapter 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank"&gt;&lt;b&gt;Chapter 3&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 4&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 5&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 6&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 7&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="http://channel9.msdn.com/504211/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 8, Functional Parsers, it's all about parsing and parsers. A parser is a program that analyses a piece of text to determine its syntactic structure. In a functional language such as Haskell, parsers can naturally be viewed as functions.

  type Parser = String -&amp;gt; Tree

A parser is a function that takes a string and returns some form of tree.


You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/</link><pubDate>Thu, 19 Nov 2009 18:55:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp4</guid><evnet:views>35203</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/504211/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In &lt;strong&gt;Chapter 8&lt;/strong&gt;, &lt;strong&gt;Functional Parsers&lt;/strong&gt;, it's all about parsing and parsers. A parser is a program that analyses a piece of text to determine its syntactic structure. In a functional language such as Haskell, parsers can naturally be viewed as functions. &lt;br /&gt;
&lt;br /&gt;
type Parser = String -&amp;gt; Tree&lt;br /&gt;
&lt;br /&gt;
A parser is a function that takes a string and returns some form of tree.</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp4" expression="full" duration="3287" fileSize="435268814" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp3" expression="full" duration="3287" fileSize="26301343" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp4" expression="full" duration="3287" fileSize="435268814" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.wma" expression="full" duration="3287" fileSize="26593375" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.wmv" expression="full" duration="3287" fileSize="570803545" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_2MB_ch9.wmv" expression="full" duration="3287" fileSize="1280192037" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_Zune_ch9.wmv" expression="full" duration="3287" fileSize="422371597" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_512_ch9.png" expression="full" duration="3287" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/1/1/2/4/0/5/C9LecturesMeijerC8.ism/Manifest" expression="full" duration="3287" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp4" length="435268814" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>10</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/504211/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category><category>Programming Languages</category></item><item><title>E2E: Erik Meijer and Patrick Dussud - Inside Garbage Collection</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_85_ch9.png" border="0" /&gt;&lt;a href="http://www.microsoft.com/presspass/exec/techfellow/dussud/default.mspx" target="_blank"&gt;Patrick Dussud&lt;/a&gt; is a Technical Fellow at Microsoft who is the author of .NET's garbage collector (GC) - the automatic memory management infrastructure that makes up most of what is managed in managed code execution. How does GC, work, generally? Why is it important? The GC inside of the CLR is of a specfic type - ephemeral, concurrent (the server version has always been concuurent and now with Background GC on the client in CLR 4, GC is concurrent on the client as well, but there are differences...). &lt;br /&gt;
&lt;br /&gt;
Patrick takes us through the basics of GC up to the current state of the art in this outstanding conversation with one of the fathers of .NET. Of course, given the other expert in the room - programming language designer Erik Meijer, we have to talk about the impact that dynamic and functional languages have on the design of general purpose GCs as well as future directions of the CLR's GC, generally. What's Patrick working on these days? &lt;br /&gt;
&lt;br /&gt;
Patrick will be presenting at &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC09&lt;/a&gt; in the the &lt;a href="http://microsoftpdc.com/Sessions/Tags/TechnicalLeaders" target="_blank"&gt;Technical Leaders track&lt;/a&gt;. His talk, &lt;a href="http://microsoftpdc.com/Sessions/FT51" target="_blank"&gt;Future of GC&lt;/a&gt;, should not be missed. This conversation is a great introduction to what Patrick will be talking about and we highly recommend you watch this before you attend his session (or watch his session after the show shortly after the PDC ends - like last year, all sessions will be available on-demand...).&lt;br /&gt;
&lt;br /&gt;
Enjoy.&lt;img src="http://channel9.msdn.com/505480/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Patrick-Dussud-Inside-Garbage-Collection/</comments><itunes:summary>Patrick Dussud is a Technical Fellow at Microsoft who is the author of .NET's garbage collector (GC) - the automatic memory management infrastructure that makes up most of what is managed in managed code execution. How does GC, work, generally? Why is it important? The GC inside of the CLR is of a specfic type - ephemeral, concurrent (the server version has always been concuurent and now with Background GC on the client in CLR 4, GC is concurrent on the client as well, but there are differences...). 

Patrick takes us through the basics of GC up to the current state of the art in this outstanding conversation with one of the fathers of .NET. Of course, given the other expert in the room - programming language designer Erik Meijer, we have to talk about the impact that dynamic and functional languages have on the design of general purpose GCs as well as future directions of the CLR's GC, generally. What's Patrick working on these days? 

Patrick will be presenting at PDC09 in the the Technical Leaders track. His talk, Future of GC, should not be missed. This conversation is a great introduction to what Patrick will be talking about and we highly recommend you watch this before you attend his session (or watch his session after the show shortly after the PDC ends - like last year, all sessions will be available on-demand...).

Enjoy.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Patrick-Dussud-Inside-Garbage-Collection/</link><pubDate>Fri, 13 Nov 2009 16:30:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.mp4</guid><evnet:views>33469</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/505480/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;a href="http://www.microsoft.com/presspass/exec/techfellow/dussud/default.mspx" target="_blank"&gt;Patrick Dussud&lt;/a&gt;, Technical Fellow and father of the CLR's garbage collector, takes us through the basics of GC up to the current state of the art in this outstanding conversation. Of course, given the other expert in the room, programming language designer and Channel 9 hero Erik Meijer, we &lt;em&gt;have&lt;/em&gt; to talk about the impact that dynamic and functional languages have on the design of general purpose GCs as well as future directions of the CLR's GC, generally. What's Patrick working on these days? &lt;br /&gt;
&lt;br /&gt;
Patrick will be presenting at &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC09&lt;/a&gt; in the the &lt;a href="http://microsoftpdc.com/Sessions/Tags/TechnicalLeaders" target="_blank"&gt;Technical Leaders track&lt;/a&gt;. His talk, &lt;a href="http://microsoftpdc.com/Sessions/FT51" target="_blank"&gt;Future of GC&lt;/a&gt;, should not be missed. This conversation is a great introduction to what Patrick will be talking about and we highly recommend you watch this before you attend his session (or watch his session after the show shortly after the PDC ends - like last year, all sessions will be available on-demand...).&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.mp4" expression="full" duration="3422" fileSize="639486554" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.mp3" expression="full" duration="3422" fileSize="27380211" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.mp4" expression="full" duration="3422" fileSize="639486554" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.wma" expression="full" duration="3422" fileSize="27683827" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.wmv" expression="full" duration="3422" fileSize="754709435" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_2MB_ch9.wmv" expression="full" duration="3422" fileSize="1072801969" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_Zune_ch9.wmv" expression="full" duration="3422" fileSize="482725487" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_512_ch9.png" expression="full" duration="3422" type="image/jpeg" medium="image" /><media:content url="http://mschannel9.vo.msecnd.net/ss1/ch9/0/8/4/5/0/5/E2EMeijerDussudGC.ism/Manifest" expression="full" duration="3422" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/0/8/4/5/0/5/E2EMeijerDussudGC_ch9.mp4" length="639486554" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>13</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Patrick-Dussud-Inside-Garbage-Collection/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/505480/Trackback.aspx</trackback:ping><category>CLR</category><category>Erik Meijer</category><category>Expert to Expert</category><category>GC</category><category>Patrick-Dussud</category><category>PDC09</category><category>Programming</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 7 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_85_ch9.png" border="0" /&gt;&lt;p&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In &lt;strong&gt;Chapter 7&lt;/strong&gt;, Dr. Meijer teaches us about &lt;strong&gt;Higher-Order Functions&lt;/strong&gt;. A function is called higher-order if it takes a function as an argument and returns a function as a result:&lt;br /&gt;
&lt;br /&gt;
twice    :: (a -&amp;gt; a) -&amp;gt; a -&amp;gt; a&lt;br /&gt;
twice f x = f (f x)&lt;br /&gt;
&lt;br /&gt;
The function twice above is higher order because it takes a function (f x) as it first argument and returns a function (f(fx)) &lt;br /&gt;
&lt;br /&gt;
Dr. Meijer will elaborate on why higher-order functions are important and there are some really interesting side-effects of higher-order functions such as defining DSLs as collections of higher-order functions and using algebraic properties of higher-order functions to reason about programs. &lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;b&gt;Chapter 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank"&gt;&lt;b&gt;Chapter 3&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 4&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 5&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 6&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;b&gt;20%&lt;/b&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. &lt;/p&gt;
&lt;p&gt;The promotion code is &lt;b&gt;09HASK&lt;/b&gt; and it is vaild on both the Hardback:&lt;/p&gt;
&lt;p&gt;9780521871723 and Paperback: 9780521692694. The catalog pages are:&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; and the paperback is:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: This special offer is valid until &lt;b&gt;December 31, 2009&lt;/b&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/504209/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 7, Dr. Meijer teaches us about Higher-Order Functions. A function is called higher-order if it takes a function as an argument and returns a function as a result:

twice    :: (a -&amp;gt; a) -&amp;gt; a -&amp;gt; a
twice f x = f (f x)

The function twice above is higher order because it takes a function (f x) as it first argument and returns a function (f(fx)) 

Dr. Meijer will elaborate on why higher-order functions are important and there are some really interesting side-effects of higher-order functions such as defining DSLs as collections of higher-order functions and using algebraic properties of higher-order functions to reason about programs. 

You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. 
The promotion code is 09HASK and it is vaild on both the Hardback:
9780521871723 and Paperback: 9780521692694. The catalog pages are:
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 and the paperback is:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/</link><pubDate>Thu, 12 Nov 2009 16:42:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp4</guid><evnet:views>31852</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/504209/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In &lt;strong&gt;Chapter 7&lt;/strong&gt;, Dr. Meijer teaches us about &lt;strong&gt;Higher-Order Functions&lt;/strong&gt;. A function is called higher-order if it takes a function as an argument and returns a function as a result:&lt;br /&gt;
&lt;br /&gt;
twice :: (a -&amp;gt; a) -&amp;gt; a -&amp;gt; a&lt;br /&gt;
twice f x = f (f x)&lt;br /&gt;
&lt;br /&gt;
The function twice above is higher order because it takes a function (f x) as it first argument and returns a function (f(fx)) &lt;br /&gt;
&lt;br /&gt;
Dr. Meijer will elaborate on why higher-order functions are important and there are some really interesting uses of higher-order functions: You can define DSLs as collections of higher-order functions and use the algebraic properties of higher-order functions to reason about programs.&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp4" expression="full" duration="2747" fileSize="298495904" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp3" expression="full" duration="2747" fileSize="21983825" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp4" expression="full" duration="2747" fileSize="298495904" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.wma" expression="full" duration="2747" fileSize="22228569" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.wmv" expression="full" duration="2747" fileSize="387323991" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_2MB_ch9.wmv" expression="full" duration="2747" fileSize="1069934805" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_Zune_ch9.wmv" expression="full" duration="2747" fileSize="313244043" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_512_ch9.png" expression="full" duration="2747" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7.ism/Manifest" expression="full" duration="2747" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp4" length="298495904" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>12</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/504209/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category><category>Programming Languages</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_85_ch9.png" border="0" /&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In &lt;strong&gt;Chapter 6&lt;/strong&gt;, Dr. Meijer guides us through the world of &lt;strong&gt;recursive functions&lt;/strong&gt;. In Haskell, functions can be defined &lt;em&gt;in terms of themselves&lt;/em&gt;.  Such functions are called recursive.&lt;br /&gt;
For example: &lt;br /&gt;
&lt;br /&gt;
factorial 0 = 1&lt;br /&gt;
factorial (n+1) = (n+1) * factorial n&lt;br /&gt;
&lt;br /&gt;
factorial maps 0 to 1, and any other positive integer to the product of itself and the factorial of its predecessor.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Some functions, such as factorial, are simpler to define in terms of other functions. As we shall see, however, many functions can naturally be defined in terms of themselves.&lt;/p&gt;
&lt;p&gt;Properties of functions defined using recursion can be proved using the simple but powerful mathematical technique of induction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;b&gt;Chapter 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank"&gt;&lt;b&gt;Chapter 3&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 4&lt;br /&gt;
&lt;/strong&gt;&lt;/a&gt;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 5&lt;br /&gt;
&lt;br /&gt;
&lt;/strong&gt;&lt;/a&gt;Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;b&gt;20%&lt;/b&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. &lt;/p&gt;
&lt;p&gt;The promotion code is &lt;b&gt;09HASK&lt;/b&gt; and it is vaild on both the Hardback:&lt;/p&gt;
&lt;p&gt;9780521871723 and Paperback: 9780521692694. The catalog pages are:&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; and the paperback is:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: This special offer is valid until &lt;b&gt;December 31, 2009&lt;/b&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/499066/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 6, Dr. Meijer guides us through the world of recursive functions. In Haskell, functions can be defined in terms of themselves.  Such functions are called recursive.
For example: 

factorial 0 = 1
factorial (n+1) = (n+1) * factorial n

factorial maps 0 to 1, and any other positive integer to the product of itself and the factorial of its predecessor.

Some functions, such as factorial, are simpler to define in terms of other functions. As we shall see, however, many functions can naturally be defined in terms of themselves.
Properties of functions defined using recursion can be proved using the simple but powerful mathematical technique of induction.


You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. 
The promotion code is 09HASK and it is vaild on both the Hardback:
9780521871723 and Paperback: 9780521692694. The catalog pages are:
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 and the paperback is:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/</link><pubDate>Thu, 05 Nov 2009 15:53:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp4</guid><evnet:views>32471</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/499066/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In Chapter 6, Dr. Meijer guides us through the world of recursive functions. In Haskell, functions can be defined in terms of themselves.  Such functions are called recursive. &lt;br /&gt;
&lt;br /&gt;
For example: &lt;br /&gt;
&lt;br /&gt;
factorial 0 = 1&lt;br /&gt;
factorial (n+1) = (n+1) * factorial n &lt;br /&gt;
&lt;br /&gt;
factorial maps 0 to 1, and any other positive integer to the product of itself and the factorial of its predecessor. &lt;br /&gt;
&lt;br /&gt;
Some functions, such as factorial, are simpler to define in terms of other functions. As we shall see, however, many functions can naturally be defined in terms of themselves. Properties of functions defined using recursion can be proved using the simple but powerful mathematical technique of induction.</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp4" expression="full" duration="2613" fileSize="278662720" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp3" expression="full" duration="2613" fileSize="20908824" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp4" expression="full" duration="2613" fileSize="278662720" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.wma" expression="full" duration="2613" fileSize="21141115" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.wmv" expression="full" duration="2613" fileSize="382762109" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_2MB_ch9.wmv" expression="full" duration="2613" fileSize="1017554623" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_Zune_ch9.wmv" expression="full" duration="2613" fileSize="289351490" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_512_ch9.png" expression="full" duration="2613" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6.ism/Manifest" expression="full" duration="2613" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp4" length="278662720" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>24</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/499066/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category></item><item><title>E2E: Erik Meijer and Burton Smith - Concurrency, Parallelism and Programming</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_85_ch9.png" border="0" /&gt;The great &lt;a href="http://www.microsoft.com/presspass/exec/techfellow/Smith/default.mspx" target="_blank"&gt;Burton Smith&lt;/a&gt;, Microsoft Technical Fellow and an international leader in high-performance computer architecture and programming languages for parallel computing joins functional programming purist and language design guru Erik Meijer to discuss several major themes of parallel computing and distributed programming. As always, you will get a lesson in history, present trends and future possibilities. This is simply an awesome and deeply wonderful conversation. Burton is a treasure. &lt;br /&gt;
&lt;br /&gt;
Erik shows up for the conversation only after Burton begins to talk about a potential definition for functional programming. Right on queue, Erik arrives! &lt;br /&gt;
&lt;br /&gt;
Burton will be presenting his thinking on parallel and concurrent programming at &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC09&lt;/a&gt;. He will also be a panelist on the &lt;a href="http://microsoftpdc.com/Sessions/FT52" target="_blank"&gt;Future of Programming panel&lt;/a&gt; (and Erik will be the panel moderator - you won't want to miss the panel if you are attending PDC!).&lt;img src="http://channel9.msdn.com/501495/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Burton-Smith-Concurrency-Parallelism-and-Programming/</comments><itunes:summary>The great Burton Smith, Microsoft Technical Fellow and an international leader in high-performance computer architecture and programming languages for parallel computing joins functional programming purist and language design guru Erik Meijer to discuss several major themes of parallel computing and distributed programming. As always, you will get a lesson in history, present trends and future possibilities. This is simply an awesome and deeply wonderful conversation. Burton is a treasure. 

Erik shows up for the conversation only after Burton begins to talk about a potential definition for functional programming. Right on queue, Erik arrives! 

Burton will be presenting his thinking on parallel and concurrent programming at PDC09. He will also be a panelist on the Future of Programming panel (and Erik will be the panel moderator - you won't want to miss the panel if you are attending PDC!).</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Burton-Smith-Concurrency-Parallelism-and-Programming/</link><pubDate>Tue, 03 Nov 2009 16:19:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.mp4</guid><evnet:views>24606</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/501495/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>The great &lt;a href="http://www.microsoft.com/presspass/exec/techfellow/Smith/default.mspx" target="_blank"&gt;Burton Smith&lt;/a&gt;, Microsoft Technical Fellow and an international leader in high-performance computer architecture and programming languages for parallel computing joins functional programming purist and language design guru Erik Meijer to discuss several major themes of parallel computing and distributed programming. As always, you will get a lesson in history, present trends and future possibilities. This is simply an awesome and deeply wonderful conversation. Burton is a treasure. &lt;br /&gt;
&lt;br /&gt;
Erik shows up for the conversation only after Burton begins to talk about a potential definition for functional programming. Right on queue, Erik arrives! &lt;br /&gt;
&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.mp4" expression="full" duration="3854" fileSize="693585425" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.mp3" expression="full" duration="3854" fileSize="30835344" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.mp4" expression="full" duration="3854" fileSize="693585425" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.wma" expression="full" duration="3854" fileSize="31177479" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.wmv" expression="full" duration="3854" fileSize="832395483" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_2MB_ch9.wmv" expression="full" duration="3854" fileSize="1181412561" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_Zune_ch9.wmv" expression="full" duration="3854" fileSize="639564180" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_512_ch9.png" expression="full" duration="3854" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency.ism/Manifest" expression="full" duration="3854" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/5/9/4/1/0/5/E2EMeijerSmithConcurrency_ch9.mp4" length="693585425" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>17</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Burton-Smith-Concurrency-Parallelism-and-Programming/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/501495/Trackback.aspx</trackback:ping><category>Burton Smith</category><category>Computer Hardware</category><category>Concurrency</category><category>Erik Meijer</category><category>Expert to Expert</category><category>Functional Programming</category><category>Parallel Computing</category><category>PDC09</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 5 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_85_ch9.png" border="0" /&gt;&lt;p&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In &lt;strong&gt;Chapter 5&lt;/strong&gt;, Dr. Meijer introduces and digs into &lt;strong&gt;List Comprehensions&lt;/strong&gt;. In mathematics, comprehension notation is used to construct new sets from old sets. In Haskell, you can create new lists from old lists using a similar comprehension syntax:&lt;br /&gt;
&lt;br /&gt;
[x^2 | x &amp;lt;- [1..5]]&lt;br /&gt;
&lt;br /&gt;
The above notation represents the list [1,4,9,16,25] of all numbers x^2 such that x is an element of the list [1..5]. The &amp;lt;- [1..5] syntax is known as a &lt;strong&gt;generator&lt;/strong&gt; and list comprehensions can have mulitple generators that can have explicit dependencies on other generators. You will also learn about &lt;strong&gt;guards&lt;/strong&gt;, which restrict values created by earlier generators.&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;b&gt;Chapter 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank"&gt;&lt;b&gt;Chapter 3&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 4&lt;br /&gt;
&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;b&gt;20%&lt;/b&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. &lt;/p&gt;
&lt;p&gt;The promotion code is &lt;b&gt;09HASK&lt;/b&gt; and it is vaild on both the Hardback:&lt;/p&gt;
&lt;p&gt;9780521871723 and Paperback: 9780521692694. The catalog pages are:&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; and the paperback is:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: This special offer is valid until &lt;b&gt;December 31, 2009&lt;/b&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/498918/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 5, Dr. Meijer introduces and digs into List Comprehensions. In mathematics, comprehension notation is used to construct new sets from old sets. In Haskell, you can create new lists from old lists using a similar comprehension syntax:

[x^2 | x &amp;lt;- [1..5]]

The above notation represents the list [1,4,9,16,25] of all numbers x^2 such that x is an element of the list [1..5]. The &amp;lt;- [1..5] syntax is known as a generator and list comprehensions can have mulitple generators that can have explicit dependencies on other generators. You will also learn about guards, which restrict values created by earlier generators.

You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1
Chapter 2
Chapter 3
Chapter 4

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. 
The promotion code is 09HASK and it is vaild on both the Hardback:
9780521871723 and Paperback: 9780521692694. The catalog pages are:
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 and the paperback is:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/</link><pubDate>Thu, 29 Oct 2009 17:31:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp4</guid><evnet:views>41192</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/498918/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In &lt;strong&gt;Chapter 5&lt;/strong&gt;, Dr. Meijer introduces and digs into &lt;strong&gt;List Comprehensions&lt;/strong&gt;. In mathematics, comprehension notation is used to construct new sets from old sets. In Haskell, you can create new lists from old lists using a similar comprehension syntax:&lt;br /&gt;
&lt;br /&gt;
[x^2 | x &amp;lt;- [1..5]]&lt;br /&gt;
&lt;br /&gt;
The above notation represents the list [1,4,9,16,25] of all numbers x^2 such that x is an element of the list [1..5]. The &amp;lt;- [1..5] syntax is known as a &lt;strong&gt;generator&lt;/strong&gt; and list comprehensions can have mulitple generators that can have explicit dependencies on other generators. You will also learn about &lt;strong&gt;guards&lt;/strong&gt;, which restrict values created by earlier generators.</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp4" expression="full" duration="1916" fileSize="202842067" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp3" expression="full" duration="1916" fileSize="15334084" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp4" expression="full" duration="1916" fileSize="202842067" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.wma" expression="full" duration="1916" fileSize="15508615" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.wmv" expression="full" duration="1916" fileSize="285824351" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_2MB_ch9.wmv" expression="full" duration="1916" fileSize="746286796" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_Zune_ch9.wmv" expression="full" duration="1916" fileSize="210471181" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_512_ch9.png" expression="full" duration="1916" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5.ism/Manifest" expression="full" duration="1916" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp4" length="202842067" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>26</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/498918/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category><category>Programming Languages</category></item><item><title>E2E: Erik Meijer and Don Box - Perspectives on SOAP, Programming Data and M</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_85_ch9.png" border="0" /&gt;&lt;a href="http://www.microsoft.com/presspass/exec/de/Box/default.mspx" target="_blank"&gt;Don Box&lt;/a&gt; is a Distinguished Engineer at Microsoft and has a rich history in the general purpose programming world. You remember SOAP, right? Don was one of the &lt;a href="http://en.wikipedia.org/wiki/SOAP#History" target="_blank"&gt;Gang of Four&lt;/a&gt; who designed SOAP. Don was also instrumental in the design and implementation of WCF. Don is currently building a new model-based data programming platform, code-named Oslo, along with a new language for describing data, M. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://research.microsoft.com/en-us/um/people/emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt;, programming language and library designer, chats with Don about the history of SOAP, model-based programming, data and M. Don will be at &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC09&lt;/a&gt; and in addition to giving his usual stellar performance as a session speaker, he will be part of the &lt;a href="http://microsoftpdc.com/Sessions/FT52" target="_blank"&gt;Future of Programming&lt;/a&gt; panel (a view into Microsoft's perspective on trends and possibilities for general purpose programming in the age of many-core and cloud computing).&lt;img src="http://channel9.msdn.com/502361/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Don-Box-Perspectives-on-SOAP-Programming-Data-and-M/</comments><itunes:summary>Don Box is a Distinguished Engineer at Microsoft and has a rich history in the general purpose programming world. You remember SOAP, right? Don was one of the Gang of Four who designed SOAP. Don was also instrumental in the design and implementation of WCF. Don is currently building a new model-based data programming platform, code-named Oslo, along with a new language for describing data, M. 

Erik Meijer, programming language and library designer, chats with Don about the history of SOAP, model-based programming, data and M. Don will be at PDC09 and in addition to giving his usual stellar performance as a session speaker, he will be part of the Future of Programming panel (a view into Microsoft's perspective on trends and possibilities for general purpose programming in the age of many-core and cloud computing).</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Don-Box-Perspectives-on-SOAP-Programming-Data-and-M/</link><pubDate>Wed, 28 Oct 2009 16:52:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.mp4</guid><evnet:views>38504</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/502361/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;a href="http://www.microsoft.com/presspass/exec/de/Box/default.mspx" target="_blank"&gt;Don Box&lt;/a&gt; is a Distinguished Engineer at Microsoft and has a rich history in the general purpose programming world. You remember SOAP, right? Don was one of the &lt;a href="http://en.wikipedia.org/wiki/SOAP#History" target="_blank"&gt;Gang of Four&lt;/a&gt; who designed SOAP. Don was also instrumental in the design and implementation of WCF. Don is currently building a new model-based data programming platform, code-named Oslo, along with a new language for describing data, M. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://research.microsoft.com/en-us/um/people/emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt;, programming language and library designer, chats with Don about the history of SOAP, model-based programming, data and M. Don will be at &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC09&lt;/a&gt; and in addition to giving his usual stellar performance as a session speaker, he will be part of the &lt;a href="http://microsoftpdc.com/Sessions/FT52" target="_blank"&gt;Future of Programming&lt;/a&gt; panel (a view into Microsoft's perspective on trends and possibilities for general purpose programming in the age of many-core and cloud computing).</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.mp4" expression="full" duration="2678" fileSize="511995331" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.mp3" expression="full" duration="2678" fileSize="21430385" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.mp4" expression="full" duration="2678" fileSize="511995331" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.wma" expression="full" duration="2678" fileSize="21669819" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.wmv" expression="full" duration="2678" fileSize="592411019" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_2MB_ch9.wmv" expression="full" duration="2678" fileSize="839861505" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_Zune_ch9.wmv" expression="full" duration="2678" fileSize="571833415" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_512_ch9.png" expression="full" duration="2678" type="image/jpeg" medium="image" /><media:content url="http://mschannel9.vo.msecnd.net/ss1/ch9/1/6/3/2/0/5/E2EMeijerDonBox.ism/Manifest" expression="full" duration="2678" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/1/6/3/2/0/5/E2EMeijerDonBox_ch9.mp4" length="511995331" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>16</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Don-Box-Perspectives-on-SOAP-Programming-Data-and-M/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/502361/Trackback.aspx</trackback:ping><category>Don Box</category><category>Erik Meijer</category><category>Expert to Expert</category><category>M</category><category>Oslo</category><category>PDC09</category><category>Programming Languages</category><category>SOAP</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 4 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_85_ch9.png" border="0" /&gt;&lt;p&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In &lt;strong&gt;Chapter 4&lt;/strong&gt;, Dr. Meijer teaches us about the art and practice of &lt;strong&gt;defining functions&lt;/strong&gt;. Functions can be defined using conditional expressions and in Haskell conditional expressions must &lt;em&gt;always&lt;/em&gt; have an else clause. Functions can also be defined using guarded equations and pattern matching. You will learn about list patterns and integer patterns. Today is also the day that you will learn about &lt;strong&gt;lambda expressions and sections.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;b&gt;Chapter 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 3&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;b&gt;20%&lt;/b&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. &lt;/p&gt;
&lt;p&gt;The promotion code is &lt;b&gt;09HASK&lt;/b&gt; and it is vaild on both the Hardback:&lt;/p&gt;
&lt;p&gt;9780521871723 and Paperback: 9780521692694. The catalog pages are:&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; and the paperback is:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: This special offer is valid until &lt;b&gt;December 31, 2009&lt;/b&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/498917/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 4, Dr. Meijer teaches us about the art and practice of defining functions. Functions can be defined using conditional expressions and in Haskell conditional expressions must always have an else clause. Functions can also be defined using guarded equations and pattern matching. You will learn about list patterns and integer patterns. Today is also the day that you will learn about lambda expressions and sections.

You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1
Chapter 2
Chapter 3

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it. 
The promotion code is 09HASK and it is vaild on both the Hardback:
9780521871723 and Paperback: 9780521692694. The catalog pages are:
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 and the paperback is:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/</link><pubDate>Thu, 22 Oct 2009 18:34:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.mp4</guid><evnet:views>45782</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/498917/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In &lt;strong&gt;Chapter 4&lt;/strong&gt;, Dr. Meijer teaches us about the art and practice of &lt;strong&gt;defining functions&lt;/strong&gt;. Functions can be defined using conditional expressions and in Haskell conditional expressions must &lt;em&gt;always&lt;/em&gt; have an else clause. Functions can also be defined using guarded equations and pattern matching. You will learn about list patterns and integer patterns. Today is also the day that you will learn about &lt;strong&gt;lambda expressions and sections.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;b&gt;Chapter 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank"&gt;&lt;strong&gt;Chapter 3&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.mp4" expression="full" duration="3659" fileSize="473919571" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.mp3" expression="full" duration="3659" fileSize="29280546" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.mp4" expression="full" duration="3659" fileSize="473919571" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.wma" expression="full" duration="3659" fileSize="29603383" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.wmv" expression="full" duration="3659" fileSize="631512753" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_2MB_ch9.wmv" expression="full" duration="3659" fileSize="736545601" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_Zune_ch9.wmv" expression="full" duration="3659" fileSize="369155968" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_512_ch9.png" expression="full" duration="3659" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4.ism/Manifest" expression="full" duration="3659" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/7/1/9/8/9/4/C9LecturesMeijerFPC4_ch9.mp4" length="473919571" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>26</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/498917/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Programming Languages</category></item><item><title>Mark Russinovich: Inside Windows 7 Redux</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_85_ch9.png" border="0" /&gt;&lt;strong&gt;Windows 7 is here&lt;/strong&gt;, available to all for purchase and ships today with new PCs! To celebrate this momentous occasion for Windows and Microsoft, Technical Fellow &lt;a href="http://www.microsoft.com/presspass/exec/techfellow/Russinovich/default.mspx" target="_blank"&gt;Mark Russinovich&lt;/a&gt; joins me in a discussion that extends &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7/" target="_blank"&gt;the great conversation we had last year on Windows 7 internals&lt;/a&gt;. In his previous C9 interview, Mark told us about many of the new additions to the Windows kernel which enable Windows 7 (and Windows Server R2) to scale to large numbers of processors. Well, removing &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Farewell-to-the-Windows-Kernel-Dispatcher-Lock/" target="_blank"&gt;the kernel dispatcher lock&lt;/a&gt; is not all that the great Arun Kishan did. He also developed a new scheduling mechanism known as Distributed Fair Share Scheduling (DFSS). Mark describes what this is and how it works. &lt;br /&gt;
&lt;br /&gt;
We also discuss NUMA, non-uniform memory access, (and Mark explains NUMA to us while showing a demo or two on a 256 processor machine!)&lt;br /&gt;
&lt;br /&gt;
Moving on to Windows memory management, the domain of the great engineer Landy Wang, Mark discusses the new additions to the Windows Memory Manager and explains why they matter to those of us who spend all of our time and in user mode. &lt;br /&gt;
&lt;br /&gt;
Learn about all of this and much more as Mark digs into the insides of Windows 7, way deep down in the system (the culmative effects of which help to make Windows 7 Microsoft's most reliable, scalable and efficient general purpose operating system to date). As usual, Mark explains very complex mechanisms and concepts in a readily understandable way. This is a very conversational piece and we cover a lot of ground in a relatively short period of time. We also learn exactly why Mark is so passionate about operating systems and what the spark was that set off his passion and curiosity of how things work internally. &lt;br /&gt;
&lt;br /&gt;
Mark will be presenting at &lt;a href="http://microsoftpdc.com" target="_blank"&gt;PDC09&lt;/a&gt; in the &lt;a href="http://microsoftpdc.com/Sessions/Tags/TechnicalLeaders" target="_blank"&gt;Technical Leaders&lt;/a&gt; track and the free &lt;a href="http://microsoftpdc.com/Sessions/WKSP08" target="_blank"&gt;Windows 7 Developer Boot Camp&lt;/a&gt;. His talks will be very deep and will explore all aspects of the new, improved Windows 7 kernel. I &lt;em&gt;highly&lt;/em&gt; recommend that you attend both of these talks if you are going to PDC (you're going, right?!).&lt;br /&gt;
&lt;br /&gt;
Check out the &lt;a href="http://channel9.msdn.com/Windows" title="Windows on 9"&gt;Windows area on 9&lt;/a&gt; for more great Windows 7 content, all rolled up into a nice experience!&lt;br /&gt;
&lt;br /&gt;
Enjoy! &lt;br /&gt;
&lt;br /&gt;
Note: Check out all the 9 Guys Mark has. :) Also, you should subscribe to his &lt;a href="http://blogs.technet.com/markrussinovich/" target="_blank"&gt;incredible blog&lt;/a&gt;.&lt;img src="http://channel9.msdn.com/497008/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7-Redux/</comments><itunes:summary>Windows 7 is here, available to all for purchase and ships today with new PCs! To celebrate this momentous occasion for Windows and Microsoft, Technical Fellow Mark Russinovich joins me in a discussion that extends the great conversation we had last year on Windows 7 internals. In his previous C9 interview, Mark told us about many of the new additions to the Windows kernel which enable Windows 7 (and Windows Server R2) to scale to large numbers of processors. Well, removing the kernel dispatcher lock is not all that the great Arun Kishan did. He also developed a new scheduling mechanism known as Distributed Fair Share Scheduling (DFSS). Mark describes what this is and how it works. 

We also discuss NUMA, non-uniform memory access, (and Mark explains NUMA to us while showing a demo or two on a 256 processor machine!)

Moving on to Windows memory management, the domain of the great engineer Landy Wang, Mark discusses the new additions to the Windows Memory Manager and explains why they matter to those of us who spend all of our time and in user mode. 

Learn about all of this and much more as Mark digs into the insides of Windows 7, way deep down in the system (the culmative effects of which help to make Windows 7 Microsoft's most reliable, scalable and efficient general purpose operating system to date). As usual, Mark explains very complex mechanisms and concepts in a readily understandable way. This is a very conversational piece and we cover a lot of ground in a relatively short period of time. We also learn exactly why Mark is so passionate about operating systems and what the spark was that set off his passion and curiosity of how things work internally. 

Mark will be presenting at PDC09 in the Technical Leaders track and the free Windows 7 Developer Boot Camp. His talks will be very deep and will explore all aspects of the new, improved Windows 7 kernel. I highly recommend that you attend both of these talks if you are going to PDC (you're going, right?!).

Check out the Windows area on 9 for more great Windows 7 content, all rolled up into a nice experience!

Enjoy! 

Note: Check out all the 9 Guys Mark has.  Also, you should subscribe to his incredible blog.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7-Redux/</link><pubDate>Thu, 22 Oct 2009 16:30:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.mp4</guid><evnet:views>53668</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/497008/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;strong&gt;Windows 7 is here&lt;/strong&gt;, available to all for purchase and ships today with new PCs! To celebrate this momentous occasion for Windows and Microsoft, Technical Fellow &lt;a href="http://www.microsoft.com/presspass/exec/techfellow/Russinovich/default.mspx" target="_blank"&gt;Mark Russinovich&lt;/a&gt; joins me in a discussion that extends &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7/" target="_blank"&gt;the great conversation we had last year on Windows 7 internals&lt;/a&gt;. Mark digs into the insides of Windows 7, way deep down in the system (the culmative effects of which help to make Windows 7 Microsoft's most reliable, scalable and efficient general purpose operating system to date). As usual, Mark explains very complex mechanisms and concepts in a readily understandable way. This is a very conversational piece and we cover a lot of ground in a relatively short period of time. We also learn exactly why Mark is so passionate about operating systems and what the spark was that set off his passion and curiosity of how things work internally. &lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.mp4" expression="full" duration="3185" fileSize="576606677" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.mp3" expression="full" duration="3185" fileSize="25486229" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.mp4" expression="full" duration="3185" fileSize="576606677" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.wma" expression="full" duration="3185" fileSize="25770285" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.wmv" expression="full" duration="3185" fileSize="698946123" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_2MB_ch9.wmv" expression="full" duration="3185" fileSize="993352547" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_Zune_ch9.wmv" expression="full" duration="3185" fileSize="449778103" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_512_ch9.png" expression="full" duration="3185" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux.ism/Manifest" expression="full" duration="3185" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/8/0/0/7/9/4/MarkRussinovichWin7Redux_ch9.mp4" length="576606677" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>24</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7-Redux/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/497008/Trackback.aspx</trackback:ping><category>_Featured</category><category>_Win7UnderHood</category><category>_Win7UnderHoodFeatured</category><category>Architecture</category><category>Arun Kishan</category><category>Kernel</category><category>Mark Russinovich</category><category>Memory Manager</category><category>PDC09</category><category>Windows 7</category></item><item><title>Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_85_ch9.png" border="0" /&gt;&lt;p&gt;In Visual Studio 2010 Beta 1, you were introduced to new analysis and profiling capabilities (Parallel Profiling and Performance Tools) designed to make concurrency understandable and, ultimately, debuggable. Today, with the release of &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;Visual Studio 2010 Beta 2&lt;/a&gt;, we introduce an updated and significantly more capable concurrency visualization and profiling tool which is available with other profiling features in Visual Studio 2010 Premium and Ultimate. What does it do, exactly? How does it work?&lt;br /&gt;
What's new?&lt;br /&gt;
&lt;br /&gt;
Here, Architect Hazim Shafi, Dev Lead Sasha Dadiomov and PM Bill Colburn tell us all about the Concurrency Visualizer Profiling Tool, including a demo. So, fire up Beta 2, spin up some threads and visualize concurrency. You should profile an already-existing application that employs concurrency and, perhaps for the first time, get to see what your concurrent code is &lt;em&gt;actually&lt;/em&gt; doing at run time.&lt;/p&gt;
&lt;p&gt;Parallel visualization tools team blog: &lt;a href="http://blogs.msdn.com/visualizeparallel/"&gt;http://blogs.msdn.com/visualizeparallel/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The parallel computing dev center: &lt;a href="http://msdn.microsoft.com/en-us/concurrency/default.aspx"&gt;http://msdn.microsoft.com/en-us/concurrency/default.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;br /&gt;
Hazim's blog: &lt;a href="http://blogs.msdn.com/hshafi/default.aspx"&gt;http://blogs.msdn.com/hshafi/default.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://channel9.msdn.com/497082/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool/</comments><itunes:summary>In Visual Studio 2010 Beta 1, you were introduced to new analysis and profiling capabilities (Parallel Profiling and Performance Tools) designed to make concurrency understandable and, ultimately, debuggable. Today, with the release of Visual Studio 2010 Beta 2, we introduce an updated and significantly more capable concurrency visualization and profiling tool which is available with other profiling features in Visual Studio 2010 Premium and Ultimate. What does it do, exactly? How does it work?
What's new?

Here, Architect Hazim Shafi, Dev Lead Sasha Dadiomov and PM Bill Colburn tell us all about the Concurrency Visualizer Profiling Tool, including a demo. So, fire up Beta 2, spin up some threads and visualize concurrency. You should profile an already-existing application that employs concurrency and, perhaps for the first time, get to see what your concurrent code is actually doing at run time.
Parallel visualization tools team blog: http://blogs.msdn.com/visualizeparallel/

The parallel computing dev center: http://msdn.microsoft.com/en-us/concurrency/default.aspx 
 
Hazim's blog: http://blogs.msdn.com/hshafi/default.aspx</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool/</link><pubDate>Mon, 19 Oct 2009 17:21:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.mp4</guid><evnet:views>27405</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/497082/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;p&gt;In Visual Studio 2010 Beta 1, you were introduced to new analysis and profiling capabilities (Parallel Profiling and Performance Tools) designed to make concurrency understandable and, ultimately, debuggable. Today, with the release of &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;Visual Studio 2010 Beta 2&lt;/a&gt;, we introduce an updated and significantly more capable concurrency visualization and profiling tool which is available with other profiling features in Visual Studio 2010 Premium and Ultimate. What does it do, exactly? How does it work?&lt;br /&gt;
What's new?&lt;/p&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.mp4" expression="full" duration="2807" fileSize="504055017" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.mp3" expression="full" duration="2807" fileSize="22459322" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.mp4" expression="full" duration="2807" fileSize="504055017" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.wma" expression="full" duration="2807" fileSize="22709203" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.wmv" expression="full" duration="2807" fileSize="598860825" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_2MB_ch9.wmv" expression="full" duration="2807" fileSize="855926279" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_Zune_ch9.wmv" expression="full" duration="2807" fileSize="398620805" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_512_ch9.png" expression="full" duration="2807" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/2/8/0/7/9/4/ParallelProfilerBeta2.ism/Manifest" expression="full" duration="2807" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/2/8/0/7/9/4/ParallelProfilerBeta2_ch9.mp4" length="504055017" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>6</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/497082/Trackback.aspx</trackback:ping><category>Concurrency</category><category>Parallel Computing</category><category>Parallel Computing Platform</category><category>Visual Studio 2010</category></item><item><title>Stephan T. Lavavej: Everything you ever wanted to know about nullptr</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_85_ch9.png" border="0" /&gt;&lt;p&gt;In C++, 0 is an abused integer. It is used to reflect, well, 0 as a value of type int and it is also used to represent a null pointer... The latter has led to many bugs and confusion over the past 30 years. Put simply, using 0 is and has always been a bad idea (then there's the NULL macro...). Well, my friends, today, with the release of &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797" target="_blank"&gt;Visual Studio 2010 Beta 2&lt;/a&gt; and the updated C++ language, compilers and libraries that come with it, the abuse of 0 comes to an end: Introducing nullptr the rvalue constant that actually &lt;b&gt;&lt;i&gt;is &lt;/i&gt;&lt;/b&gt;a null pointer literal. &lt;br /&gt;
&lt;br /&gt;
Who better to dig deep into nullptr (and a few other topics of related interest and importance) than the great and gifted Stephan T. Lavavej? Stephen is a C++ expert and library author who &lt;a href="http://channel9.msdn.com/tags/STL"&gt;you've met before a few times on C9&lt;/a&gt;. Sit back, relax and learn everything you ever wanted to know about nullptr. Thank you, Stephen, for the awesome lesson!&lt;br /&gt;
&lt;br /&gt;
Enjoy! &lt;br /&gt;
&lt;br /&gt;
VC Team Blog: &lt;a href="http://blogs.msdn.com/vcblog/default.aspx"&gt;http://blogs.msdn.com/vcblog/default.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://channel9.msdn.com/494900/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/</comments><itunes:summary>In C++, 0 is an abused integer. It is used to reflect, well, 0 as a value of type int and it is also used to represent a null pointer... The latter has led to many bugs and confusion over the past 30 years. Put simply, using 0 is and has always been a bad idea (then there's the NULL macro...). Well, my friends, today, with the release of Visual Studio 2010 Beta 2 and the updated C++ language, compilers and libraries that come with it, the abuse of 0 comes to an end: Introducing nullptr the rvalue constant that actually is a null pointer literal. 

Who better to dig deep into nullptr (and a few other topics of related interest and importance) than the great and gifted Stephan T. Lavavej? Stephen is a C++ expert and library author who you've met before a few times on C9. Sit back, relax and learn everything you ever wanted to know about nullptr. Thank you, Stephen, for the awesome lesson!

Enjoy! 

VC Team Blog: http://blogs.msdn.com/vcblog/default.aspx</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/</link><pubDate>Mon, 19 Oct 2009 16:39:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.mp4</guid><evnet:views>28753</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/494900/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;p&gt;In C++, 0 is an abused integer. It is used to reflect, well, 0 as a value of type int and it is also used to represent a null pointer... The latter has led to many bugs and confusion over the past 30 years. Put simply, using 0 is and has always been a bad idea (then there's the NULL macro...). Well, my friends, today, with the release of &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797" target="_blank"&gt;Visual Studio 2010 Beta 2&lt;/a&gt; and the updated C++ language, compilers and libraries that come with it, the abuse of 0 comes to an end: Introducing nullptr the rvalue constant that actually &lt;b&gt;&lt;i&gt;is &lt;/i&gt;&lt;/b&gt;a null pointer literal. &lt;br /&gt;
&lt;br /&gt;
Who better to dig deep into nullptr (and a few other topics of related interest and importance) than the great and gifted Stephan T. Lavavej? Stephen is a C++ expert and library author who &lt;a href="http://channel9.msdn.com/tags/STL"&gt;you've met before a few times on C9&lt;/a&gt;. Sit back, relax and learn everything you ever wanted to know about nullptr. Thank you, Stephen, for the awesome lesson!&lt;/p&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.mp4" expression="full" duration="3704" fileSize="641556314" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.mp3" expression="full" duration="3704" fileSize="29634112" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.mp4" expression="full" duration="3704" fileSize="641556314" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.wma" expression="full" duration="3704" fileSize="29960865" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.wmv" expression="full" duration="3704" fileSize="817353383" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_2MB_ch9.wmv" expression="full" duration="3704" fileSize="1118347661" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_Zune_ch9.wmv" expression="full" duration="3704" fileSize="524233369" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_512_ch9.png" expression="full" duration="3704" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/0/0/9/4/9/4/STLnullptrExplained.ism/Manifest" expression="full" duration="3704" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/0/0/9/4/9/4/STLnullptrExplained_ch9.mp4" length="641556314" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>10</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/494900/Trackback.aspx</trackback:ping><category>C++</category><category>C++0x</category><category>STL</category><category>Visual Studio 2010</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 3 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_85_ch9.png" border="0" /&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In Chapter 3, Dr. Meijer explores &lt;strong&gt;types and classes in Haskell&lt;/strong&gt;. A type is a collection of related values and in Haskell every well-formed expression has a type. Using type inference, these types are automatically calculated at run time. If expression e returns a type t, then e is of type t, e :: t. A function is a mapping of one type to another type and you will learn about new types of functions in this lecture, specifically curried functions: functions that return functions as a result (and functions are values, remember) and polymorphic functions (function with a type that contains one or more type variables).&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank"&gt;&lt;strong&gt;Chapter 2&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;b&gt;20%&lt;/b&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it.
&lt;p&gt;The promotion code is &lt;b&gt;09HASK&lt;/b&gt; and it is vaild on both the Hardback:&lt;/p&gt;
&lt;p&gt;9780521871723 and Paperback: 9780521692694. The catalog pages are:&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; and the paperback is:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: This special offer is valid until &lt;b&gt;December 31, 2009&lt;/b&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/495716/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 3, Dr. Meijer explores types and classes in Haskell. A type is a collection of related values and in Haskell every well-formed expression has a type. Using type inference, these types are automatically calculated at run time. If expression e returns a type t, then e is of type t, e :: t. A function is a mapping of one type to another type and you will learn about new types of functions in this lecture, specifically curried functions: functions that return functions as a result (and functions are values, remember) and polymorphic functions (function with a type that contains one or more type variables).

You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1
Chapter 2

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it.
The promotion code is 09HASK and it is vaild on both the Hardback:
9780521871723 and Paperback: 9780521692694. The catalog pages are:
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 and the paperback is:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/</link><pubDate>Thu, 15 Oct 2009 15:46:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp4</guid><evnet:views>42508</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/495716/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
In Chapter 3, Dr. Meijer explores &lt;strong&gt;types and classes in Haskell&lt;/strong&gt;. A type is a collection of related values and in Haskell every well-formed expression has a type. Using type inference, these types are automatically calculated at run time. If expression e returns a type t, then e is of type t, e :: t. A function is a mapping of one type to another type and you will learn about new types of functions in this lecture, specifically curried functions: functions that return functions as a result (and functions are values, remember) and polymorphic functions (function with a type that contains one or more type variables).</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp4" expression="full" duration="2610" fileSize="226808433" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp3" expression="full" duration="2610" fileSize="20886465" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp4" expression="full" duration="2610" fileSize="226808433" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.wma" expression="full" duration="2610" fileSize="21120093" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.wmv" expression="full" duration="2610" fileSize="322202073" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_2MB_ch9.wmv" expression="full" duration="2610" fileSize="525368335" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_Zune_ch9.wmv" expression="full" duration="2610" fileSize="176714053" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_512_ch9.png" expression="full" duration="2610" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3.ism/Manifest" expression="full" duration="2610" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp4" length="226808433" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>53</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/495716/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category><category>Programming Languages</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 2 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_85_ch9.png" border="0" /&gt;We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
We will release a new chapter in this series every Thursday.&lt;br /&gt;
&lt;br /&gt;
In Chapter 2, Dr. Meijer introduces Haskell syntax and notation (via a Haskell implementation called Hugs, to be precise, which is based on Haskell 98) and we learn about the Haskell syntax that represents the fundamental construct of functional programming: functions. It's not like you're used to in mathematics like &lt;em&gt;f(x)&lt;/em&gt;. Instead, in Haskell, a function is denoted without parentheses: &lt;em&gt;f x&lt;/em&gt;. So, given the almost OCD requirement by Haskell language designers to eliminate &lt;em&gt;any&lt;/em&gt; unnecessary clutter in the language, parentheses are replaced by space. Also, in mathematics, you're accustomed to multiplication expressed either as xy or x y. In Haskell, since space denotes a function, multiplication is denoted with a *, like x*y...&lt;br /&gt;
&lt;br /&gt;
You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"&gt;&lt;strong&gt;Chapter 1&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;b&gt;20%&lt;/b&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it.
&lt;p&gt;The promotion code is &lt;b&gt;09HASK&lt;/b&gt; and it is vaild on both the Hardback:&lt;/p&gt;
&lt;p&gt;9780521871723 and Paperback: 9780521692694. The catalog pages are:&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; and the paperback is:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: This special offer is valid until &lt;b&gt;December 31, 2009&lt;/b&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/494398/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/</comments><itunes:summary>We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

We will release a new chapter in this series every Thursday.

In Chapter 2, Dr. Meijer introduces Haskell syntax and notation (via a Haskell implementation called Hugs, to be precise, which is based on Haskell 98) and we learn about the Haskell syntax that represents the fundamental construct of functional programming: functions. It's not like you're used to in mathematics like f(x). Instead, in Haskell, a function is denoted without parentheses: f x. So, given the almost OCD requirement by Haskell language designers to eliminate any unnecessary clutter in the language, parentheses are replaced by space. Also, in mathematics, you're accustomed to multiplication expressed either as xy or x y. In Haskell, since space denotes a function, multiplication is denoted with a *, like x*y...

You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):

Chapter 1

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it.
The promotion code is 09HASK and it is vaild on both the Hardback:
9780521871723 and Paperback: 9780521692694. The catalog pages are:
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 and the paperback is:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/</link><pubDate>Thu, 08 Oct 2009 15:33:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp4</guid><evnet:views>53747</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/494398/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>We've kicked off &lt;a href="http://channel9.msdn.com/tags/C9+Lectures" target="_blank"&gt;C9 Lectures&lt;/a&gt; with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
In Chapter 2, Dr. Meijer introduces Haskell syntax and notation (via a Haskell implementation called Hugs, to be precise, which is based on Haskell 98) and we learn about the Haskell syntax that represents the fundamental construct of functional programming: functions. It's not like you're used to in mathematics like &lt;em&gt;f(x)&lt;/em&gt;. Instead, in Haskell, a function is denoted without parentheses: &lt;em&gt;f x&lt;/em&gt;. So, given the almost OCD requirement by Haskell language designers to eliminate &lt;em&gt;any&lt;/em&gt; unnecessary clutter in the language, parentheses are replaced by space. Also, in mathematics, you're accustomed to multiplication expressed either as xy or x y. In Haskell, since space denotes a function, multiplication is denoted with a *, like x*y...&lt;br /&gt;
&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp4" expression="full" duration="3061" fileSize="322302235" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp3" expression="full" duration="3061" fileSize="24489482" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp4" expression="full" duration="3061" fileSize="322302235" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.wma" expression="full" duration="3061" fileSize="24757937" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.wmv" expression="full" duration="3061" fileSize="443120373" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_2MB_ch9.wmv" expression="full" duration="3061" fileSize="616708939" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_Zune_ch9.wmv" expression="full" duration="3061" fileSize="248752353" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_512_ch9.png" expression="full" duration="3061" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2.ism/Manifest" expression="full" duration="3061" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp4" length="322302235" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>59</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/494398/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category></item><item><title>Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_85_ch9.png" border="0" /&gt;&lt;a href="http://clojure.org/" target="_blank"&gt;Clojure&lt;/a&gt; is a dynamic programming language created by Rich Hickey that targets both the Java Virtual Machine and the CLR. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.&lt;br /&gt;
&lt;br /&gt;
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.&lt;br /&gt;
&lt;br /&gt;
Astrophysicist and Software Architect Brian Beckman interviews Rich Hickey to dig into the details of this very interesting language. If you don't know much about Clojure and the general problems it aims to solve, well, watch and listen carefully to this great conversation with plenty of whiteboarding and outstanding questions. Expert to Expert simply rocks! Thank you for spending time with us, Rich! Clojure is great!&lt;br /&gt;&lt;img src="http://channel9.msdn.com/492048/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Rich-Hickey-and-Brian-Beckman-Inside-Clojure/</comments><itunes:summary>Clojure is a dynamic programming language created by Rich Hickey that targets both the Java Virtual Machine and the CLR. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

Astrophysicist and Software Architect Brian Beckman interviews Rich Hickey to dig into the details of this very interesting language. If you don't know much about Clojure and the general problems it aims to solve, well, watch and listen carefully to this great conversation with plenty of whiteboarding and outstanding questions. Expert to Expert simply rocks! Thank you for spending time with us, Rich! Clojure is great!</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Rich-Hickey-and-Brian-Beckman-Inside-Clojure/</link><pubDate>Tue, 06 Oct 2009 17:29:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.mp4</guid><evnet:views>55921</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/492048/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;a href="http://clojure.org/" target="_blank"&gt;Clojure&lt;/a&gt; is a dynamic programming language created by Rich Hickey that targets both the Java Virtual Machine and the CLR. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.&lt;br /&gt;
&lt;br /&gt;
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.&lt;br /&gt;
&lt;br /&gt;
Astrophysicist and Software Architect Brian Beckman interviews Rich Hickey to dig into the details of this very interesting language. If you don't know much about Clojure and the general problems it aims to solve, well, watch and listen carefully to this great conversation with plenty of whiteboarding and outstanding questions. Expert to Expert simply rocks! Thank you for spending time with us, Rich! Clojure is great!&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.mp4" expression="full" duration="3236" fileSize="258485130" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.mp3" expression="full" duration="3236" fileSize="25891472" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.mp4" expression="full" duration="3236" fileSize="258485130" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.wma" expression="full" duration="3236" fileSize="26178829" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.wmv" expression="full" duration="3236" fileSize="551330889" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_2MB_ch9.wmv" expression="full" duration="3236" fileSize="651182901" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_Zune_ch9.wmv" expression="full" duration="3236" fileSize="298866817" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_512_ch9.png" expression="full" duration="3236" type="image/jpeg" medium="image" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/8/4/0/2/9/4/E2EBeckmanHickeyClojure_ch9.mp4" length="258485130" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>24</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Rich-Hickey-and-Brian-Beckman-Inside-Clojure/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/492048/Trackback.aspx</trackback:ping><category>Brian Beckman</category><category>Clojure</category><category>Dynamic Languages</category><category>Expert to Expert</category><category>JVM</category><category>Programming</category><category>Programming Languages</category></item><item><title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 1 of 13</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_85_ch9.png" border="0" /&gt;&lt;p&gt;Welcome to a new technical series on Channel 9 folded into a different kind of 9 format: &lt;i&gt;C9 Lectures. &lt;/i&gt;These are what you think they are, lectures. They are not conversational in nature (like most of what you're used to on 9), but rather these pieces are entirely focused on education, coming to you in the form of a series of high quality technical lectures (1 or more per topic) on a single topic.&lt;br /&gt;
&lt;br /&gt;
We kick off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). &lt;br /&gt;
&lt;br /&gt;
Lecture Context:&lt;br /&gt;
&lt;br /&gt;
Over the past two years, you've learned a fair amount about the functional programming paradigm's foray into general purpose imperative progamming languages (LINQ, Lambda's, etc in C# and VB.NET). And, of course, the newest language to join the Visual Studio family of languages, F#, &lt;em&gt;is&lt;/em&gt; a functional language. You've heard us say how important functional language constructs are to the our current languages' capabilities to evolve in the right direction to meet the needs of the many-core future (the need for reliable and comprehensible concurrency, parallelism, etc) and,&lt;em&gt; most importantly&lt;/em&gt;, to help vault computer programming into an age of compositionality (remember our talks on 9 regarding composability and evolution of software engineering as an engineering discipline?). Well, we decided to take a step back and teach you the &lt;em&gt;fundamentals&lt;/em&gt; of functional programming at a level equivalent to any university. We even have a text book and professor who will expand our minds. &lt;br /&gt;
&lt;br /&gt;
Dr. Erik Meijer will teach us Functional Programming Fundamentals using Haskell as the language for understanding the basic functional principles (in fact, the specific language isn't all that important, but Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of functional programming. It is also a relatively small language and should be easy for you to get up to speed with Haskell once you understand the Why, What and How that underlies all functional languages...).&lt;br /&gt;
&lt;br /&gt;
Now, we do have a textbook and you should go buy it: The great &lt;a href="http://www.cs.nott.ac.uk/~gmh/" target="_blank"&gt;Graham Hutton's&lt;/a&gt; &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"&gt;Programming in Haskell&lt;/a&gt;. We worked with the publisher, Cambridge University Press, to get all Niners a &lt;strong&gt;20%&lt;/strong&gt; discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it.&lt;/p&gt;
&lt;p&gt;The promotion code is &lt;strong&gt;09HASK&lt;/strong&gt; and it is vaild on both the Hardback and Paperback.&lt;/p&gt;
&lt;p&gt;Hardback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Paperback:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694"&gt;http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Note&lt;/strong&gt;: This special offer is valid until &lt;strong&gt;December 31, 2009&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;In Chapter 1, Dr. Meijer takes us through the fundamental fundamentals of functional programming: The philosophy and history of functional programming. As you can imagine, these lectures will go deeper and deeper as the chapters progress, but you need to understand the philosophical and historical contexts. This will provide a nice layer of fresh conceptual soil in which to plant the seeds of understanding the technical details of functional programming, of functional reasoning.&lt;br /&gt;
&lt;br /&gt;
Welcome to C9 Lectures. Enjoy and learn, learn, learn.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;ALWAYS&lt;/strong&gt; ask questions right here. Erik will answer them. Remember, he is professor Erik Meijer in this context and professors answer the questions of their students. Thank you, Erik, for doing this!&lt;br /&gt;
&lt;br /&gt;
Welcome to C9 Lectures!&lt;/p&gt;&lt;img src="http://channel9.msdn.com/494397/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/</comments><itunes:summary>Welcome to a new technical series on Channel 9 folded into a different kind of 9 format: C9 Lectures. These are what you think they are, lectures. They are not conversational in nature (like most of what you're used to on 9), but rather these pieces are entirely focused on education, coming to you in the form of a series of high quality technical lectures (1 or more per topic) on a single topic.

We kick off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). 

Lecture Context:

Over the past two years, you've learned a fair amount about the functional programming paradigm's foray into general purpose imperative progamming languages (LINQ, Lambda's, etc in C# and VB.NET). And, of course, the newest language to join the Visual Studio family of languages, F#, is a functional language. You've heard us say how important functional language constructs are to the our current languages' capabilities to evolve in the right direction to meet the needs of the many-core future (the need for reliable and comprehensible concurrency, parallelism, etc) and, most importantly, to help vault computer programming into an age of compositionality (remember our talks on 9 regarding composability and evolution of software engineering as an engineering discipline?). Well, we decided to take a step back and teach you the fundamentals of functional programming at a level equivalent to any university. We even have a text book and professor who will expand our minds. 

Dr. Erik Meijer will teach us Functional Programming Fundamentals using Haskell as the language for understanding the basic functional principles (in fact, the specific language isn't all that important, but Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of functional programming. It is also a relatively small language and should be easy for you to get up to speed with Haskell once you understand the Why, What and How that underlies all functional languages...).

Now, we do have a textbook and you should go buy it: The great Graham Hutton's Programming in Haskell. We worked with the publisher, Cambridge University Press, to get all Niners a 20% discount on the book. Now, you don't need the book to learn a great deal from this lecture series since Graham's website has all the slides and samples from the book as well as answers to the exercises. That said, it's highly recommended reading and you should consider it.
The promotion code is 09HASK and it is vaild on both the Hardback and Paperback.
Hardback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521871723 

Paperback:
http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=9780521692694

Note: This special offer is valid until December 31, 2009 
 
In Chapter 1, Dr. Meijer takes us through the fundamental fundamentals of functional programming: The philosophy and history of functional programming. As you can imagine, these lectures will go deeper and deeper as the chapters progress, but you need to understand the philosophical and historical contexts. This will provide a nice layer of fresh conceptual soil in which to plant the seeds of understanding the technical details of functional programming, of functional reasoning.

Welcome to C9 Lectures. Enjoy and learn, learn, learn.

ALWAYS ask questions right here. Erik will answer them. Remember, he is professor Erik Meijer in this context and professors answer the questions of their students. Thank you, Erik, for doing this!

Welcome to C9 Lectures!</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/</link><pubDate>Thu, 01 Oct 2009 15:50:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp4</guid><evnet:views>79308</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/494397/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Welcome to a new technical series on Channel 9 folded into a different kind of 9 format: C9 Lectures. These are what you think they are, lectures. They are not conversational in nature (like most of what you're used to on 9), but rather these pieces are entirely focused on education, coming to you in the form of a series of high quality technical lectures (1 or more per topic) on a single topic.&lt;br /&gt;
&lt;br /&gt;
We kick off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. &lt;a href="http://research.microsoft.com/~emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders).</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp4" expression="full" duration="1897" fileSize="230905860" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp3" expression="full" duration="1897" fileSize="15180681" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp4" expression="full" duration="1897" fileSize="230905860" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.wma" expression="full" duration="1897" fileSize="15349403" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.wmv" expression="full" duration="1897" fileSize="316768137" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_2MB_ch9.wmv" expression="full" duration="1897" fileSize="381931312" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_Zune_ch9.wmv" expression="full" duration="1897" fileSize="176752065" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_512_ch9.png" expression="full" duration="1897" type="image/jpeg" medium="image" /><media:content url="http://ss.channel9.msdn.com/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1.ism/Manifest" expression="full" duration="1897" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp4" length="230905860" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>86</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/494397/Trackback.aspx</trackback:ping><category>C9 Lectures</category><category>Erik Meijer</category><category>Functional Programming</category><category>Haskell</category><category>Programming Languages</category></item><item><title>E2E: Erik Meijer and Wes Dyer - Reactive Framework (Rx) Under the Hood 2 of 2</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_small_ch9.png" border="0" /&gt;Software Developer extraordinaire and language compiler geek Wes Dyer and programming language design guru and LINQ co-creator Erik Meijer dig into the Reactive Framework (Rx). This is part 2 of 2. See part 1 &lt;a href="http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-1-of-2/" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here, Erik and Wes continue their discussion on the core ideas behind Rx. Rx is deep (as in profound), as you must have gathered by now. Erik, of course, continues to keep the theoretical basis of all this squarely front and center so we understand the relationship between principles and practice.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;img src="http://channel9.msdn.com/459092/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-2-of-2/</comments><itunes:summary>Software Developer extraordinaire and language compiler geek Wes Dyer and programming language design guru and LINQ co-creator Erik Meijer dig into the Reactive Framework (Rx). This is part 2 of 2. See part 1 here.

Here, Erik and Wes continue their discussion on the core ideas behind Rx. Rx is deep (as in profound), as you must have gathered by now. Erik, of course, continues to keep the theoretical basis of all this squarely front and center so we understand the relationship between principles and practice.

Enjoy!</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-2-of-2/</link><pubDate>Mon, 28 Sep 2009 15:50:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.mp4</guid><evnet:views>39897</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/459092/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Software Developer extraordinaire and language compiler geek Wes Dyer and programming language design guru and LINQ co-creator Erik Meijer dig into the Reactive Framework (Rx). This is part 2 of 2. See part 1 &lt;a href="http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-1-of-2/" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here, Erik and Wes continue their discussion on the core ideas behind Rx. Rx is deep (as in profound), as you must have gathered by now. Erik, of course, continues to keep the theoretical basis of all this squarely front and center so we understand the relationship between principles and practice.&lt;br /&gt;
&lt;br /&gt;
Enjoy!</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.mp4" expression="full" duration="2267" fileSize="223547658" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.mp3" expression="full" duration="2267" fileSize="18136630" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.mp4" expression="full" duration="2267" fileSize="223547658" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.wma" expression="full" duration="2267" fileSize="36686831" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.wmv" expression="full" duration="2267" fileSize="137171037" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_2MB_ch9.wmv" expression="full" duration="2267" fileSize="709603541" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_Zune_ch9.wmv" expression="full" duration="2267" fileSize="179475017" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/2/9/0/9/5/4/RxPart2_ch9.mp4" length="223547658" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>31</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-2-of-2/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/459092/Trackback.aspx</trackback:ping><category>Erik Meijer</category><category>Expert to Expert</category><category>LINQ to Events</category><category>Programming</category><category>Reactive Extensions</category><category>Reactive Framework</category><category>Rx</category></item><item><title>E2E: Erik Meijer and Wes Dyer - Reactive Framework (Rx) Under the Hood 1 of 2</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_small_ch9.png" border="0" /&gt;You've already learned a great deal about Erik Meijer's latest programming creation, Rx, right here on Channel 9 (&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/" target="_blank"&gt;here &lt;/a&gt;and &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Kim-Hamilton-and-Wes-Dyer-Inside-NET-Rx-and-IObservableIObserver-in-the-BCL-VS-2010/" target="_blank"&gt;here&lt;/a&gt;, to be precise). &lt;br /&gt;
&lt;br /&gt;
Well, wouldn't it be great to get the two key minds behind Rx in one place with one whiteboard? Yes, of course it would! Enter Software Developer extraordinaire and language compiler geek Wes Dyer and programming language design guru and LINQ co-creator Erik Meijer to dig into the "Live Labs Reactive Framework (Rx)" or ".NET Reactive Framework (Rx)". So, let's be honest here. The official name of this great technology has not been determined. But, it's just a name and the name is &lt;em&gt;so&lt;/em&gt; much less interesting than what this technology enables and will enable in the future for software developers. So, forget about the &lt;em&gt;exact&lt;/em&gt; branding of Rx. Just think of it as, well, Rx until the marketing people come up with an official naming scheme (that most likely will not be as cool as Rx, but c'est la vie...). &lt;br /&gt;
&lt;br /&gt;
Here, Erik and Wes focus on the core ideas behind Rx and dig into the geeky details of this observer-based programming model. Rx is deep (as in profound), as you must have gathered by now. Erik, of course, keeps the theoretical basis of all this squarely front and center so we understand the relationship between principles and practice.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;img src="http://channel9.msdn.com/459091/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-1-of-2/</comments><itunes:summary>You've already learned a great deal about Erik Meijer's latest programming creation, Rx, right here on Channel 9 (here and here, to be precise). 

Well, wouldn't it be great to get the two key minds behind Rx in one place with one whiteboard? Yes, of course it would! Enter Software Developer extraordinaire and language compiler geek Wes Dyer and programming language design guru and LINQ co-creator Erik Meijer to dig into the "Live Labs Reactive Framework (Rx)" or ".NET Reactive Framework (Rx)". So, let's be honest here. The official name of this great technology has not been determined. But, it's just a name and the name is so much less interesting than what this technology enables and will enable in the future for software developers. So, forget about the exact branding of Rx. Just think of it as, well, Rx until the marketing people come up with an official naming scheme (that most likely will not be as cool as Rx, but c'est la vie...). 

Here, Erik and Wes focus on the core ideas behind Rx and dig into the geeky details of this observer-based programming model. Rx is deep (as in profound), as you must have gathered by now. Erik, of course, keeps the theoretical basis of all this squarely front and center so we understand the relationship between principles and practice.

Enjoy!</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-1-of-2/</link><pubDate>Mon, 28 Sep 2009 15:47:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.mp4</guid><evnet:views>41586</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/459091/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>You've already learned a great deal about Erik Meijer's latest programming creation, Rx, right here on Channel 9 (&lt;a href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/" target="_blank"&gt;here &lt;/a&gt;and &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Kim-Hamilton-and-Wes-Dyer-Inside-NET-Rx-and-IObservableIObserver-in-the-BCL-VS-2010/" target="_blank"&gt;here&lt;/a&gt;, to be precise). &lt;br /&gt;
&lt;br /&gt;
Well, wouldn't it be great to get the two key minds behind Rx in one place with one whiteboard? Yes, of course it would! Enter Software Developer extraordinaire and language compiler geek Wes Dyer and programming language design guru and LINQ co-creator Erik Meijer to dig into the Reactive Framework (Rx). &lt;br /&gt;
&lt;br /&gt;
Here, Erik and Wes focus on the core ideas behind Rx and Wes, who was the lead developer of Rx, leads us through a mutli-colored whiteboarding journey. Rx is deep (as in profound), as you must have gathered by now. Erik, of course, keeps the theoretical basis of all this squarely front and center so we understand the relationship between principles and practice.&lt;br /&gt;
&lt;br /&gt;
Enjoy!</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.mp4" expression="full" duration="2587" fileSize="255246013" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.mp3" expression="full" duration="2587" fileSize="20701019" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.mp4" expression="full" duration="2587" fileSize="255246013" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.wma" expression="full" duration="2587" fileSize="41868731" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.wmv" expression="full" duration="2587" fileSize="156404963" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_2MB_ch9.wmv" expression="full" duration="2587" fileSize="809901467" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_Zune_ch9.wmv" expression="full" duration="2587" fileSize="205092943" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/0/9/5/4/RxPart1_ch9.mp4" length="255246013" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>16</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-1-of-2/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/459091/Trackback.aspx</trackback:ping><category>Erik Meijer</category><category>Expert to Expert</category><category>LINQ to Events</category><category>Programming</category><category>Reactive Extensions</category><category>Reactive Framework</category><category>Rx</category></item><item><title>Expert to Expert: Erik Meijer and Butler Lampson - Abstraction, Security and Embodiment</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_small_ch9.png" border="0" /&gt;This is a very special episode of &lt;a href="http://channel9.msdn.com/tags/expert-to-expert" target="_blank"&gt;Expert to Expert&lt;/a&gt;. We were very fortunate to get some time with renowned computer scientist and Microsoft Technical Fellow &lt;a href="http://en.wikipedia.org/wiki/Butler_Lampson" target="_blank"&gt;Butler Lampson&lt;/a&gt;. Butler's impact on general purpose computing is profound. Personal computing as it exists today is in part the result of the great work done by Butler over the past 30 years. &lt;br /&gt;
&lt;br /&gt;
Programming language designer and high priest of the lamda calculus &lt;a href="http://research.microsoft.com/en-us/um/people/emeijer/" target="_blank"&gt;Erik Meijer&lt;/a&gt; hosts this episode of E2E and Erik and Butler cover a very wide swath of computing topics. It's simply beautiful and very deep geekiness. In fact, this is one of my favorite Channel 9 conversations of late. I know you will enjoy both the usual &lt;em&gt;real&lt;/em&gt; conversational aspect of this and the depth of historical insight into some of the core aspects and unresolved problems of general purpose personal computing. &lt;br /&gt;
&lt;br /&gt;
Go get some popcorn, stream this into your XBox or Media Center and learn from one of our industry's pioneers who still has a great deal to offer to the world of personal computing. What's Butler working on these days, you wonder? What's top of mind for him as it relates to today's biggest challenges in computing? What does software security really mean? How many levels of software abstraction do we need? Why is data synchronization such a hard problem? What is software embodiment, exactly (Butler will be &lt;a href="http://microsoftpdc.com/Sessions/CL05" target="_blank"&gt;presenting his thinking on software embodiment at PDC09&lt;/a&gt;, as part of the &lt;a href="http://microsoftpdc.com/Sessions/Tags/TechnicalLeaders" target="_blank"&gt;new Technical Leaders track&lt;/a&gt; (something yours truly is responsible for - I hope you plan on attending these very special sessions and if not you will be able to watch them right here on Channel 9))?&lt;br /&gt;
&lt;br /&gt;
Tune in and meet a true legend in our industry. Microsoft is very forunate to have Butler Lampson thinking about some of the hardest problems we face as an industry and ensuring that Microsoft is capable of tackling these challenges in a way that extends the solutions for long term relevance in a changing and unpredictable environment.&lt;img src="http://channel9.msdn.com/484791/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Butler-Lampson-Abstraction-Security-Embodiment/</comments><itunes:summary>This is a very special episode of Expert to Expert. We were very fortunate to get some time with renowned computer scientist and Microsoft Technical Fellow Butler Lampson. Butler's impact on general purpose computing is profound. Personal computing as it exists today is in part the result of the great work done by Butler over the past 30 years. 

Programming language designer and high priest of the lamda calculus Erik Meijer hosts this episode of E2E and Erik and Butler cover a very wide swath of computing topics. It's simply beautiful and very deep geekiness. In fact, this is one of my favorite Channel 9 conversations of late. I know you will enjoy both the usual real conversational aspect of this and the depth of historical insight into some of the core aspects and unresolved problems of general purpose personal computing. 

Go get some popcorn, stream this into your XBox or Media Center and learn from one of our industry's pioneers who still has a great deal to offer to the world of personal computing. What's Butler working on these days, you wonder? What's top of mind for him as it relates to today's biggest challenges in computing? What does software security really mean? How many levels of software abstraction do we need? Why is data synchronization such a hard problem? What is software embodiment, exactly (Butler will be presenting his thinking on software embodiment at PDC09, as part of the new Technical Leaders track (something yours truly is responsible for - I hope you plan on attending these very special sessions and if not you will be able to watch them right here on Channel 9))?

Tune in and meet a true legend in our industry. Microsoft is very forunate to have Butler Lampson thinking about some of the hardest problems we face as an industry and ensuring that Microsoft is capable of tackling these challenges in a way that extends the solutions for long term relevance in a changing and unpredictable environment.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Butler-Lampson-Abstraction-Security-Embodiment/</link><pubDate>Thu, 17 Sep 2009 16:09:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.mp4</guid><evnet:views>42892</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/484791/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>This is a very special episode of &lt;a href="http://channel9.msdn.com/tags/expert-to-expert" target="_blank"&gt;Expert to Expert&lt;/a&gt;. We were very fortunate to get some time with renowned computer scientist and Microsoft Technical Fellow &lt;a href="http://en.wikipedia.org/wiki/Butler_Lampson" target="_blank"&gt;Butler Lampson&lt;/a&gt;. Butler's impact on general purpose computing is vast and profound. Personal computing as it exists today is in part the result of the great work done by Butler over the past 30 years. &lt;br /&gt;
&lt;br /&gt;
Programming language designer and high priest of the lamda calculus Erik Meijer hosts this episode and Erik and Butler cover a very wide swath of computing topics. It's simply beautiful and very deep geekiness. In fact, this is one of my favorite Channel 9 conversations of late. I know you will enjoy both the usual &lt;em&gt;real&lt;/em&gt; conversational aspect of this and the depth of historical insight into some of the core aspects and unresolved problems of general purpose personal computing. &lt;br /&gt;
&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.mp4" expression="full" duration="3584" fileSize="457092149" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.mp3" expression="full" duration="3584" fileSize="28673494" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.mp4" expression="full" duration="3584" fileSize="457092149" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.wma" expression="full" duration="3584" fileSize="28993571" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.wmv" expression="full" duration="3584" fileSize="787927755" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_2MB_ch9.wmv" expression="full" duration="3584" fileSize="1408395549" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_Zune_ch9.wmv" expression="full" duration="3584" fileSize="508135683" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/1/9/7/4/8/4/E2EButlerLampson_ch9.mp4" length="457092149" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>23</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Butler-Lampson-Abstraction-Security-Embodiment/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/484791/Trackback.aspx</trackback:ping><category>Butler Lampson</category><category>Erik Meijer</category><category>Expert to Expert</category><category>PDC09</category><category>Programming</category><category>Security</category><category>Technical Leaders</category></item><item><title>Inside Windows 7: RADAR - Windows Automatic Memory Leak Detection</title><description>&lt;img src="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_85_ch9.png" border="0" /&gt;RADAR is a memory leak detection technology built into Windows 7 and integrated with Watson (error reporting) and AutoBug (automatic bug filing). It allows Microsoft product teams and third parties to discover and fix memory leaks early in the product cycle and after release. Since RADAR runs on customer machines, leaks can be caught during public betas, after release, and by third parties, thus ridding the entire ecosystem of memory leaks. RADAR-shipped components are highly optimized to have no appreciable performance impact.&lt;br /&gt;
 &lt;br /&gt;
&lt;div class="roWellWrap"&gt;
&lt;div class="wellField" id="divFieldTo"&gt;
&lt;div id="divFH"&gt;&lt;/div&gt;
&lt;div class="rwW rwWRO" id="divTo"&gt;Meet RADAR developers Stephan Doll, Baskar Sridharan, Anthony Lorelli‎ and Keshava Subramanya. They dig into the architecture, design and implementation of this great technology. RADAR helps make Windows more reliable and stable by automatically pinpointing memory leaks in code that are then packaged up in bug reports that land in the hands of developers responsible for the memory leaking code. This means quicker to market solutions and knowledge gain that will prevent the same bugs from cropping up again: developers learn what went wrong and why so wthey won't make the same mistakes again. You'll learn about the most common mistakes made and you should use this to prevent memory leaks in your own native code.&lt;br /&gt;
&lt;br /&gt;
Tune in. Learn.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://channel9.msdn.com/489377/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/RADAR-Windows-Automatic-Memory-Leak-Detection/</comments><itunes:summary>RADAR is a memory leak detection technology built into Windows 7 and integrated with Watson (error reporting) and AutoBug (automatic bug filing). It allows Microsoft product teams and third parties to discover and fix memory leaks early in the product cycle and after release. Since RADAR runs on customer machines, leaks can be caught during public betas, after release, and by third parties, thus ridding the entire ecosystem of memory leaks. RADAR-shipped components are highly optimized to have no appreciable performance impact.
 



Meet RADAR developers Stephan Doll, Baskar Sridharan, Anthony Lorelli‎ and Keshava Subramanya. They dig into the architecture, design and implementation of this great technology. RADAR helps make Windows more reliable and stable by automatically pinpointing memory leaks in code that are then packaged up in bug reports that land in the hands of developers responsible for the memory leaking code. This means quicker to market solutions and knowledge gain that will prevent the same bugs from cropping up again: developers learn what went wrong and why so wthey won't make the same mistakes again. You'll learn about the most common mistakes made and you should use this to prevent memory leaks in your own native code.

Tune in. Learn.

</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/RADAR-Windows-Automatic-Memory-Leak-Detection/</link><pubDate>Tue, 15 Sep 2009 15:29:00 GMT</pubDate><guid isPermaLink="false">http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.mp4</guid><evnet:views>49997</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/489377/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>RADAR is a memory leak detection technology built into Windows 7 and integrated with Watson (error reporting) and AutoBug (automatic bug filing). It allows Microsoft product teams and third parties to discover and fix memory leaks early in the product cycle and after release. Since RADAR runs on customer machines, leaks can be caught during public betas, after release, and by third parties, thus ridding the entire ecosystem of memory leaks. RADAR-shipped components are highly optimized to have no appreciable performance impact. &lt;br /&gt;
&lt;br /&gt;
Meet RADAR developers Stephan Doll, Baskar Sridharan, Anthony Lorelli‎ and Keshava Subramanya. They dig into the architecture, design and implementation of this great technology.</evnet:previewtext><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_320_ch9.png" height="240" width="320" /><media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_85_ch9.png" height="64" width="85" /><media:group><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.mp4" expression="full" duration="3772" fileSize="439117610" type="video/mp4" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.mp3" expression="full" duration="3772" fileSize="30182766" type="audio/mp3" medium="audio" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.mp4" expression="full" duration="3772" fileSize="439117610" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.wma" expression="full" duration="3772" fileSize="30516605" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.wmv" expression="full" duration="3772" fileSize="822618393" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_2MB_ch9.wmv" expression="full" duration="3772" fileSize="1134124069" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_Zune_ch9.wmv" expression="full" duration="3772" fileSize="524394321" type="video/x-ms-wmv" medium="video" /><media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_512_ch9.png" expression="full" duration="3772" type="image/jpeg" medium="image" /></media:group><enclosure url="http://ecn.channel9.msdn.com/o9/ch9/7/7/3/9/8/4/InsideRADAR_ch9.mp4" length="439117610" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>5</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/RADAR-Windows-Automatic-Memory-Leak-Detection/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/489377/Trackback.aspx</trackback:ping><category>_Featured</category><category>_Win7</category><category>_Win7UnderHood</category><category>_Win7UnderHoodFeatured</category><category>Automation</category><category>Debugging</category><category>Programming</category><category>Reliability</category><category>Tools</category><category>Windows 7</category></item><item><title>Melur Raghuraman: Inside Windows 7 - Diagnostics and Troubleshooting</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_small_ch9.png" border="0" /&gt;Windows Development Manager Melur Raghuraman and team have taken troubleshooting and diagnostics to a &lt;em&gt;whole new level&lt;/em&gt; in Windows 7. For one thing, Windows 7 uses managed code "natively" as PowerShell has become the de facto language used for creating diagnostic algorithms that live inside of diagnostic packages. So, when something goes wrong eventually a PowerShell script runs and diagnosis happens. &lt;br /&gt;
&lt;br /&gt;
You've probably already noticed the information flag that appears in your task bar notification area when Windows wants to tell you something important. Well, in order for Windows 7 to inform you of a problem and its solution it must first diagnose the issue and collect troubleshooting steps. Sometimes, and more so than ever before, Windows will simply fix the problem and let you know about it - this is a trend that will only become more common over time and with each iteration of Windows going forward. This troubleshooting fabric has both client and server (cloud) components.&lt;br /&gt;
&lt;br /&gt;
How does this all work, &lt;em&gt;exactly&lt;/em&gt;? What's the story?&lt;br /&gt;
&lt;br /&gt;
Tune in. &lt;em&gt;Lots&lt;/em&gt; to learn here. The new troubleshooting and diagnostics capabilities in Windows 7 marks a &lt;em&gt;signficant&lt;/em&gt; step forward in the evolution of Windows supportability. Of course, you, the human user, can write your &lt;em&gt;own&lt;/em&gt; diagnostic scripts - so &lt;em&gt;you'll&lt;/em&gt; be more &lt;em&gt;efficient&lt;/em&gt;  when you need to diganosis and then fix some computer problem.&lt;img src="http://channel9.msdn.com/473211/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Inside-Windows-7-Diagnostics-and-Troubleshooting/</comments><itunes:summary>Windows Development Manager Melur Raghuraman and team have taken troubleshooting and diagnostics to a whole new level in Windows 7. For one thing, Windows 7 uses managed code "natively" as PowerShell has become the de facto language used for creating diagnostic algorithms that live inside of diagnostic packages. So, when something goes wrong eventually a PowerShell script runs and diagnosis happens. 

You've probably already noticed the information flag that appears in your task bar notification area when Windows wants to tell you something important. Well, in order for Windows 7 to inform you of a problem and its solution it must first diagnose the issue and collect troubleshooting steps. Sometimes, and more so than ever before, Windows will simply fix the problem and let you know about it - this is a trend that will only become more common over time and with each iteration of Windows going forward. This troubleshooting fabric has both client and server (cloud) components.

How does this all work, exactly? What's the story?

Tune in. Lots to learn here. The new troubleshooting and diagnostics capabilities in Windows 7 marks a signficant step forward in the evolution of Windows supportability. Of course, you, the human user, can write your own diagnostic scripts - so you'll be more efficient  when you need to diganosis and then fix some computer problem.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Inside-Windows-7-Diagnostics-and-Troubleshooting/</link><pubDate>Thu, 03 Sep 2009 16:41:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.mp4</guid><evnet:views>51739</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/473211/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Windows Development Manager Melur Raghuraman and team have taken troubleshooting and diagnostics to a &lt;em&gt;whole new level&lt;/em&gt; in Windows 7. For one thing, Windows 7 uses managed code "natively" as PowerShell has become the de facto language used for creating diagnostic algorithms that live inside of diagnostic packages. So, when something goes wrong eventually a PowerShell script runs and diagnosis happens. &lt;br /&gt;
&lt;br /&gt;
You've probably already noticed the information flag that appears in your task bar notification area when Windows wants to tell you something important. Well, in order for Windows 7 to inform you of a problem and its solution it must first diagnose the issue and collect troubleshooting steps. Sometimes, and more so than ever before, Windows will simply fix the problem and let you know about it - this is a trend that will only become more common over time and with each iteration of Windows going forward. This troubleshooting fabric has both client and server (cloud) components.&lt;br /&gt;
&lt;br /&gt;
How does this all work, &lt;em&gt;exactly&lt;/em&gt;? What's the story?&lt;br /&gt;
&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.mp4" expression="full" duration="3192" fileSize="314882617" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.mp3" expression="full" duration="3192" fileSize="25542255" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.mp4" expression="full" duration="3192" fileSize="314882617" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.wma" expression="full" duration="3192" fileSize="51649757" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.wmv" expression="full" duration="3192" fileSize="451048595" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_2MB_ch9.wmv" expression="full" duration="3192" fileSize="999217091" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_Zune_ch9.wmv" expression="full" duration="3192" fileSize="450808575" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/1/2/3/7/4/Win7DiagnosticsTroubleshooting_ch9.mp4" length="314882617" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>7</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Inside-Windows-7-Diagnostics-and-Troubleshooting/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/473211/Trackback.aspx</trackback:ping><category>_Featured</category><category>_Win7</category><category>_Win7UnderHood</category><category>_Win7UnderHoodFeatured</category><category>Diagnostics</category><category>PowerShell</category><category>Reliability</category><category>Troubleshooting</category><category>Windows 7</category></item><item><title>Silviu Calinoiu: Inside Windows 7 - Fault Tolerant Heap</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_small_ch9.png" border="0" /&gt;The Fault Tolerant Heap (FTH) is a subsystem of Windows 7 responsible for monitoring application crashes and autonomously applying mitigations to prevent future crashes on a per application basis. For the vast majority of users, FTH will function with no need for intervention or change on their part. &lt;br /&gt;
&lt;br /&gt;
Principal Development Lead and rock star developer Silviu Calinoiu is the mastermind behind FTH. Here, we go deep into how FTH works and why it's designed the way it is.&lt;br /&gt;
&lt;br /&gt;
The Fault Tolerant Heap is another example of the low level efficiency built into the system: FTH &lt;em&gt;automatically&lt;/em&gt; corrects memory faults that cause applications to crash which has the pleasant side effect of preventing future crashes. How does FTH work, exactly? What types of memory problems does it address, specifically? How do developers monitor FTH events and can they override FTH's behavior? What does this all mean to the average user? &lt;br /&gt;
&lt;br /&gt;
FTH, as an autonomous monitoring and correction system, represents a step in the right direction for the evolution of a more homeostatic general purpose operating system. Simply, Windows is getting smarter in the sense that it's increasingly becoming better at self-regulation and self-healing. Yes, there's a very long way to go, but we're making real progress.&lt;br /&gt;
&lt;br /&gt;
You will continue to learn about recoverability in Windows over the coming months here on C9.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tune in.&lt;img src="http://channel9.msdn.com/474095/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Silviu-Calinoiu-Inside-Windows-7-Fault-Tolerant-Heap/</comments><itunes:summary>The Fault Tolerant Heap (FTH) is a subsystem of Windows 7 responsible for monitoring application crashes and autonomously applying mitigations to prevent future crashes on a per application basis. For the vast majority of users, FTH will function with no need for intervention or change on their part. 

Principal Development Lead and rock star developer Silviu Calinoiu is the mastermind behind FTH. Here, we go deep into how FTH works and why it's designed the way it is.

The Fault Tolerant Heap is another example of the low level efficiency built into the system: FTH automatically corrects memory faults that cause applications to crash which has the pleasant side effect of preventing future crashes. How does FTH work, exactly? What types of memory problems does it address, specifically? How do developers monitor FTH events and can they override FTH's behavior? What does this all mean to the average user? 

FTH, as an autonomous monitoring and correction system, represents a step in the right direction for the evolution of a more homeostatic general purpose operating system. Simply, Windows is getting smarter in the sense that it's increasingly becoming better at self-regulation and self-healing. Yes, there's a very long way to go, but we're making real progress.

You will continue to learn about recoverability in Windows over the coming months here on C9.  


Tune in.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Silviu-Calinoiu-Inside-Windows-7-Fault-Tolerant-Heap/</link><pubDate>Tue, 25 Aug 2009 05:35:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.mp4</guid><evnet:views>57757</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/474095/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>The Fault Tolerant Heap (FTH) is a subsystem of Windows 7 responsible for monitoring application crashes and autonomously applying mitigations to prevent future crashes on a per application basis. For the vast majority of users, FTH will function with no need for intervention or change on their part. &lt;br /&gt;
&lt;br /&gt;
Principal Development Lead and rock star developer Silviu Calinoiu is the mastermind behind FTH. Here, we go deep into how FTH works and why it's designed the way it is.&lt;br /&gt;
&lt;br /&gt;
The Fault Tolerant Heap is another example of the low level efficiency built into the system: FTH &lt;em&gt;automatically&lt;/em&gt; corrects memory faults that cause applications to crash which has the pleasant side effect of preventing future crashes. How does FTH work, exactly? What types of memory problems does it address, specifically? How do developers monitor FTH events and can they override FTH's behavior? What does this all mean to the average user? &lt;br /&gt;
&lt;br /&gt;
FTH, as an autonomous monitoring and correction system, represents a step in the right direction for the evolution of a more homeostatic general purpose operating system. Simply, Windows is getting smarter in the sense that it's increasingly becoming better at self-regulation and self-healing. Yes, there's a very long way to go, but we're making real progress.&lt;br /&gt;
&lt;br /&gt;
You will continue to learn about recoverability in Windows over the coming months here on C9. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tune in.</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.mp4" expression="full" duration="3412" fileSize="336508725" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.mp3" expression="full" duration="3412" fileSize="27297676" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.mp4" expression="full" duration="3412" fileSize="336508725" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.wma" expression="full" duration="3412" fileSize="55197481" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.wmv" expression="full" duration="3412" fileSize="480505915" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_2MB_ch9.wmv" expression="full" duration="3412" fileSize="1067586411" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_Zune_ch9.wmv" expression="full" duration="3412" fileSize="475145895" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/5/9/0/4/7/4/InsideFTHWin7_ch9.mp4" length="336508725" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>10</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Silviu-Calinoiu-Inside-Windows-7-Fault-Tolerant-Heap/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/474095/Trackback.aspx</trackback:ping><category>_Featured</category><category>_Win7</category><category>_Win7UnderHood</category><category>_Win7UnderHoodFeatured</category><category>Architecture</category><category>FTH</category><category>Kernel</category><category>Operating Systems</category><category>Windows 7</category></item><item><title>Elliot H Omiya, Larry Osterman and Frank Yerrace: Inside Windows 7 - Audio Stack</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_small_ch9.png" border="0" /&gt;One of the central engineering and design themes of Windows 7 is efficiency: efficiency in user experience (things work as and when expected, reliably), efficiency in processing, execution, diagnostics, performance, scheduling, window managment, graphics, desktop search, etc. Well, not surprisingly, Windows 7's audio system has been engineered to provide very efficient user experience (when you plug your headphones in the system streams music to your headphones as expected. When you remove them Windows will switch the stream to flow into your speakers - this is known as real time stream switching - but how does it work, exactly?). What, exactly, is new in the Windows audio system? What's been improved since Vista? What is sound, really? (Yes, we talk about this at the end of the interview - interesting stuff indeed). You first learned about some of the &lt;a href="http://channel9.msdn.com/posts/Charles/Inside-Windows-7-Larry-Osterman-on-new-audio-capabilities/" target="_blank"&gt;updates to Windows audio in an interview with Larry in September '08&lt;/a&gt;. We dig into more detail here (whiteboard included plus we discuss a few things you probably do not know about...)&lt;br /&gt;
&lt;br /&gt;
Here, Architect Elliot H Omiya, Principal Software Developer Larry Osterman and Principal Software Developer Frank Yerrace take us through the details of Windows 7 audio, including some history, some design decisions, some hard problems and overall a great conversation about how Windows makes noise (or music - it's all relative :)).&lt;br /&gt;
&lt;br /&gt;
Enjoy. Lots to learn here. Elliot, Larry, Frank and the Windows audio team have done excellent work in this iteration of Windows. Find some time (I know. It's hard.) Get comfortable and learn all about the innerworkings of Windows 7's audio.&lt;br /&gt;&lt;img src="http://channel9.msdn.com/479820/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Elliot-H-Omiya-Larry-Osterman-and-Frank-Yerrace-Inside-Windows-7-Audio-Stack/</comments><itunes:summary>One of the central engineering and design themes of Windows 7 is efficiency: efficiency in user experience (things work as and when expected, reliably), efficiency in processing, execution, diagnostics, performance, scheduling, window managment, graphics, desktop search, etc. Well, not surprisingly, Windows 7's audio system has been engineered to provide very efficient user experience (when you plug your headphones in the system streams music to your headphones as expected. When you remove them Windows will switch the stream to flow into your speakers - this is known as real time stream switching - but how does it work, exactly?). What, exactly, is new in the Windows audio system? What's been improved since Vista? What is sound, really? (Yes, we talk about this at the end of the interview - interesting stuff indeed). You first learned about some of the updates to Windows audio in an interview with Larry in September '08. We dig into more detail here (whiteboard included plus we discuss a few things you probably do not know about...)

Here, Architect Elliot H Omiya, Principal Software Developer Larry Osterman and Principal Software Developer Frank Yerrace take us through the details of Windows 7 audio, including some history, some design decisions, some hard problems and overall a great conversation about how Windows makes noise (or music - it's all relative ).

Enjoy. Lots to learn here. Elliot, Larry, Frank and the Windows audio team have done excellent work in this iteration of Windows. Find some time (I know. It's hard.) Get comfortable and learn all about the innerworkings of Windows 7's audio.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Elliot-H-Omiya-Larry-Osterman-and-Frank-Yerrace-Inside-Windows-7-Audio-Stack/</link><pubDate>Tue, 11 Aug 2009 14:44:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.mp4</guid><evnet:views>68955</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/479820/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>One of the central engineering and design themes of Windows 7 is efficiency: efficiency in user experience (things work as and when expected, reliably), efficiency in processing, execution, diagnostics, performance, scheduling, window managment, graphics, desktop search, etc. Well, not surprisingly, Windows 7's audio system has been engineered to provide very efficient user experience (when you plug your headphones in the system streams music to your headphones as expected. When you remove them Windows will switch the stream to flow into your speakers - this is known as real time stream switching - but how does it work, exactly?). What, exactly, is new in Windows audio? What's been improved since Vista? What is sound, really? (Yes, we talk about this at the end of the interview - interesting stuff indeed). &lt;br /&gt;
 &lt;br /&gt;
Here, Architect Elliot H Omiya, Principal Software Developer Larry Osterman and Principal Software Developer Frank Yerrace take us through the details of Windows 7 audio, including some history, some design decisions, some hard problems and overall a great conversation about how Windows makes noise (or music - it's all relative, depending on the band or genre &lt;img src='/emoticons/C9/emotion-1.gif' alt='Smiley' /&gt;).&lt;br /&gt;
&lt;br /&gt;
Enjoy. Lots to learn here. Elliot, Larry, Frank and the Windows audio team have done excellent work in this iteration of Windows. Find some time (I know. It's hard.) Get comfortable and learn all about the innerworkings of Windows 7's audio.</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.mp4" expression="full" duration="3852" fileSize="379881146" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.mp3" expression="full" duration="3852" fileSize="30824280" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.mp4" expression="full" duration="3852" fileSize="379881146" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.wma" expression="full" duration="3852" fileSize="62325973" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.wmv" expression="full" duration="3852" fileSize="543196555" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_2MB_ch9.wmv" expression="full" duration="3852" fileSize="1205869051" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_Zune_ch9.wmv" expression="full" duration="3852" fileSize="544460535" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/0/2/8/9/7/4/InsideWin7Audio_ch9.mp4" length="379881146" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>21</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Elliot-H-Omiya-Larry-Osterman-and-Frank-Yerrace-Inside-Windows-7-Audio-Stack/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/479820/Trackback.aspx</trackback:ping><category>_Featured</category><category>_Win7</category><category>_Win7UnderHood</category><category>_Win7UnderHoodFeatured</category><category>Architecture</category><category>Audio</category><category>Larry Osterman</category><category>Windows 7</category></item><item><title>Arun Kishan: Inside Windows 7 - Farewell to the Windows Kernel Dispatcher Lock</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_small_ch9.png" border="0" /&gt;&lt;p&gt;You've learned about many of the new features of the latest version of the Windows kernel in the &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7/" target="_blank"&gt;Mark Russinovich Inside Windows 7 conversation &lt;/a&gt;here on Channel 9. One of Mark’s favorite kernel innovations is the way the Windows 7 kernel manages scheduling of threads and the underlying synchronization primitives that embody kernel thread management. &lt;br /&gt;
&lt;br /&gt;
Prior to Windows 7 (and therefore Windows Server 2008 R2) the Windows kernel dispatcher employed a single lock, the &lt;b&gt;dispatcher lock&lt;/b&gt;, which worked well for a relatively small numbers of processors (like 64). However, now that we find ourselves in the midst of the ManyCore era, well, 64 processors aren’t that many... A new strategy was required to scale Windows to large numbers of processors since a single lock is limited in capability, by design: The masterful David Cutler, one of the world's greatest software engineers, wrote the NT scheduler in a time when the notion of affordable 256-processor machines was more science fiction than probable. &lt;br /&gt;
&lt;br /&gt;
As we learned in the Mark Russinovich video, Windows 7 can now scale to 256 processors thanks to the great engineering of &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Process-Management-in-Windows-Vista/" target="_blank"&gt;Arun Kishan, a kernel architect you've met on C9 back in the Vista days&lt;/a&gt;. In order to promote further scalability of the NT kernel, Arun completely eliminated the dispatcher lock and replaced it with a much finer grained set of synchronization primitives. Gone are the days of contention for a single &lt;strong&gt;spinlock&lt;/strong&gt;. How did Arun pull this off, exactly, you ask? Who is this genius? Well, tune in. Lots of answers await…&lt;br /&gt;
&lt;br /&gt;
Arun's work directly benefits the overall performance of Windows running on many processors and means, simply, Windows can now really scale. Thank you, Arun!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;&lt;hr align="left" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Spinlocks&lt;/b&gt; are synchronization primitives that cause a processor to busy-wait until the state of the lock’s memory location changes.&lt;/p&gt;
&lt;p&gt; &lt;br /&gt;
As the name implies, the &lt;b&gt;dispatcher lock&lt;/b&gt; is the fundamental lock associated with the kernel dispatcher, or the scheduler.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://channel9.msdn.com/464394/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Farewell-to-the-Windows-Kernel-Dispatcher-Lock/</comments><itunes:summary>You've learned about many of the new features of the latest version of the Windows kernel in the Mark Russinovich Inside Windows 7 conversation here on Channel 9. One of Mark’s favorite kernel innovations is the way the Windows 7 kernel manages scheduling of threads and the underlying synchronization primitives that embody kernel thread management. 

Prior to Windows 7 (and therefore Windows Server 2008 R2) the Windows kernel dispatcher employed a single lock, the dispatcher lock, which worked well for a relatively small numbers of processors (like 64). However, now that we find ourselves in the midst of the ManyCore era, well, 64 processors aren’t that many... A new strategy was required to scale Windows to large numbers of processors since a single lock is limited in capability, by design: The masterful David Cutler, one of the world's greatest software engineers, wrote the NT scheduler in a time when the notion of affordable 256-processor machines was more science fiction than probable. 

As we learned in the Mark Russinovich video, Windows 7 can now scale to 256 processors thanks to the great engineering of Arun Kishan, a kernel architect you've met on C9 back in the Vista days. In order to promote further scalability of the NT kernel, Arun completely eliminated the dispatcher lock and replaced it with a much finer grained set of synchronization primitives. Gone are the days of contention for a single spinlock. How did Arun pull this off, exactly, you ask? Who is this genius? Well, tune in. Lots of answers await…

Arun's work directly benefits the overall performance of Windows running on many processors and means, simply, Windows can now really scale. Thank you, Arun!
 


Spinlocks are synchronization primitives that cause a processor to busy-wait until the state of the lock’s memory location changes.
 
As the name implies, the dispatcher lock is the fundamental lock associated with the kernel dispatcher, or the scheduler.
 </itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Farewell-to-the-Windows-Kernel-Dispatcher-Lock/</link><pubDate>Thu, 06 Aug 2009 17:28:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.mp4</guid><evnet:views>71596</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/464394/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;p&gt;You've learned about many of the new features of the latest version of the Windows kernel in the &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7/" target="_blank"&gt;Mark Russinovich Inside Windows 7 conversation &lt;/a&gt;here on Channel 9. One of Mark’s favorite kernel innovations is the way the Windows 7 kernel manages scheduling of threads and the underlying synchronization primitives that embody kernel thread management. &lt;br /&gt;
&lt;br /&gt;
Prior to Windows 7 (and therefore Windows Server 2008 R2) the Windows kernel dispatcher employed a single lock, the &lt;b&gt;dispatcher lock&lt;/b&gt;, which worked well for a relatively small numbers of processors (like 64). However, now that we find ourselves in the midst of the ManyCore era, well, 64 processors aren’t that many... A new strategy was required to scale Windows to large numbers of processors since a single lock is limited in capability, by design: The masterful David Cutler, one of the world's greatest software engineers, wrote the NT scheduler in a time when the notion of affordable 256-processor machines was more science fiction than probable. &lt;br /&gt;
&lt;br /&gt;
As we learned in the Mark Russinovich video, Windows 7 can now scale to 256 processors thanks to the great engineering of &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Process-Management-in-Windows-Vista/" target="_blank"&gt;Arun Kishan, a kernel architect you've met on C9 back in the Vista days&lt;/a&gt;. In order to promote further scalability of the NT kernel, Arun completely eliminated the dispatcher lock and replaced it with a much finer grained set of synchronization primitives. Gone are the days of contention for a single &lt;strong&gt;spinlock&lt;/strong&gt;. How did Arun pull this off, exactly, you ask? Who is this genius? Well, tune in. Lots of answers await…&lt;br /&gt;
&lt;br /&gt;
Arun's work directly benefits the overall performance of Windows running on many processors and means, simply, Windows can now really scale. Thank you, Arun! &lt;/p&gt;
&lt;div&gt;&lt;hr align="left" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Spinlocks&lt;/b&gt; are synchronization primitives that cause a processor to busy-wait until the state of the lock’s memory location changes.&lt;/p&gt;
&lt;p&gt;As the name implies, the &lt;b&gt;dispatcher lock&lt;/b&gt; is the fundamental lock associated with the kernel dispatcher, or the scheduler.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.mp4" expression="full" duration="3548" fileSize="349878657" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.mp3" expression="full" duration="3548" fileSize="28389398" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.mp4" expression="full" duration="3548" fileSize="349878657" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.wma" expression="full" duration="3548" fileSize="57411429" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.wmv" expression="full" duration="3548" fileSize="214810731" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_2MB_ch9.wmv" expression="full" duration="3548" fileSize="1110627233" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_Zune_ch9.wmv" expression="full" duration="3548" fileSize="473338711" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/4/9/3/4/6/4/ArunKishanWin7DispatcherLock_ch9.mp4" length="349878657" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>13</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Farewell-to-the-Windows-Kernel-Dispatcher-Lock/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/464394/Trackback.aspx</trackback:ping><category>_Win7</category><category>_Win7UnderHood</category><category>_Win7UnderHoodFeatured</category><category>Architecture</category><category>Arun Kishan</category><category>Kernel</category><category>Operating Systems</category><category>Programming</category><category>R2PERF</category><category>Windows 7</category><category>Windows Server 2008 R2</category></item><item><title>Kim Hamilton and Wes Dyer: Inside .NET Rx and IObservable/IObserver in the BCL (VS 2010)</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_small_ch9.png" border="0" /&gt;You &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/" target="_blank"&gt;recently learned about Erik Meijer's latest innovation, Rx&lt;/a&gt;, here on Channel 9. Clearly, judging by the views and comments on that post, it piqued your interest and curiosity. Wes Dyer, a rock star developer on Erik's team of rock stars, implemented a great deal of Rx and helped to design it along with Erik. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Visual Studio 2010 will ship with with two new types, IObserver and IObservable&lt;/strong&gt;. Rock star developer Kim Hamiliton (&lt;a href="http://channel9.msdn.com/posts/Charles/Inside-NET-4-Meet-the-BCL-Team/" target="_blank"&gt;you've met her on C9&lt;/a&gt;) implemented these two types in the BCL and worked closely with Erik and Wes to insure that Rx in the BCL is designed and implemented to meet the strict requirements for new types in .NET's robust general purpose library. As you've learned previously, IObservable is the mathematical dual of IEnumerable. We of course talk about this here, but from the developer perspective. You've already learned about the math and continuation monad behind this with Erik and Brian Beckman.&lt;br /&gt;
&lt;br /&gt;
Here, Kim and Wes dig into the implementation of IObservable and IObserver in the 2010 version of the BCL. How did Erik and team work with the BCL folks? What were the design decisions that led to the final implementation of the two Rx types in the BCL? What do these two new types enable for .NET developers? This is a great example of how innovation comes to market: incubation teams come up with a brilliant idea, refine it by working with multiple teams and some researchers in MSR, pass it along to a product group, they go back and forth on implementation details and design requirements and finally the new stuff is added to the shipping code base. Great stuff!!&lt;br /&gt;
&lt;br /&gt;
Make sure to watch this all the way through. You never know what kind of magic can happen if you know how to summon a wizard.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;img src="http://channel9.msdn.com/480361/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Kim-Hamilton-and-Wes-Dyer-Inside-NET-Rx-and-IObservableIObserver-in-the-BCL-VS-2010/</comments><itunes:summary>You recently learned about Erik Meijer's latest innovation, Rx, here on Channel 9. Clearly, judging by the views and comments on that post, it piqued your interest and curiosity. Wes Dyer, a rock star developer on Erik's team of rock stars, implemented a great deal of Rx and helped to design it along with Erik. 

Visual Studio 2010 will ship with with two new types, IObserver and IObservable. Rock star developer Kim Hamiliton (you've met her on C9) implemented these two types in the BCL and worked closely with Erik and Wes to insure that Rx in the BCL is designed and implemented to meet the strict requirements for new types in .NET's robust general purpose library. As you've learned previously, IObservable is the mathematical dual of IEnumerable. We of course talk about this here, but from the developer perspective. You've already learned about the math and continuation monad behind this with Erik and Brian Beckman.

Here, Kim and Wes dig into the implementation of IObservable and IObserver in the 2010 version of the BCL. How did Erik and team work with the BCL folks? What were the design decisions that led to the final implementation of the two Rx types in the BCL? What do these two new types enable for .NET developers? This is a great example of how innovation comes to market: incubation teams come up with a brilliant idea, refine it by working with multiple teams and some researchers in MSR, pass it along to a product group, they go back and forth on implementation details and design requirements and finally the new stuff is added to the shipping code base. Great stuff!!

Make sure to watch this all the way through. You never know what kind of magic can happen if you know how to summon a wizard.

Enjoy!</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Kim-Hamilton-and-Wes-Dyer-Inside-NET-Rx-and-IObservableIObserver-in-the-BCL-VS-2010/</link><pubDate>Tue, 04 Aug 2009 17:02:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.mp4</guid><evnet:views>51048</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/480361/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>You &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/" target="_blank"&gt;recently learned about Erik Meijer's latest innovation, Rx&lt;/a&gt;, here on Channel 9. Clearly, judging by the views and comments on that post, it piqued your interest and curiosity. Wes Dyer, a rock star developer on Erik's team of rock stars, implemented a great deal of Rx and helped to design it along with Erik. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Visual Studio 2010 will ship with with two new types, IObserver and IObservable&lt;/strong&gt;. Rock star developer Kim Hamiliton (&lt;a href="http://channel9.msdn.com/posts/Charles/Inside-NET-4-Meet-the-BCL-Team/" target="_blank"&gt;you've met her on C9&lt;/a&gt;) implemented these two types in the BCL and worked closely with Erik and Wes to insure that Rx in the BCL is designed and implemented to meet the strict requirements for new types in .NET's robust general purpose library. As you've learned previously, IObservable is the mathematical dual of IEnumerable. We of course talk about this here, but from the developer perspective. You've already learned about the math and continuation monad behind this with Erik and Brian Beckman.&lt;br /&gt;
&lt;br /&gt;
Here, Kim and Wes dig into the implementation of IObservable and IObserver in the 2010 version of the BCL. How did Erik and team work with the BCL folks? What were the design decisions that led to the final implementation of the two Rx types in the BCL? What do these two new types enable for .NET developers? This is a great example of how innovation comes to market: incubation teams come up with a brilliant idea, refine it by working with multiple teams and some researchers in MSR, pass it along to a product group, they go back and forth on implementation details and design requirements and finally the new stuff is added to the shipping code base. Great stuff!!&lt;br /&gt;
&lt;br /&gt;
Make sure to watch this all the way through. You never know what kind of magic can happen if you know how to summon a wizard.&lt;br /&gt;</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.mp4" expression="full" duration="2473" fileSize="163380338" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.mp3" expression="full" duration="2473" fileSize="19786400" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.mp4" expression="full" duration="2473" fileSize="163380338" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.wma" expression="full" duration="2473" fileSize="20002605" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.wmv" expression="full" duration="2473" fileSize="374888193" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_2MB_ch9.wmv" expression="full" duration="2473" fileSize="497501660" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_Zune_ch9.wmv" expression="full" duration="2473" fileSize="198440135" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/6/3/0/8/4/HamiltonDyerRxBCL_ch9.mp4" length="163380338" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>27</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Kim-Hamilton-and-Wes-Dyer-Inside-NET-Rx-and-IObservableIObserver-in-the-BCL-VS-2010/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/480361/Trackback.aspx</trackback:ping><category>BCL</category><category>Programming</category><category>Rx</category><category>Visual Studio 2010</category></item><item><title>Expert to Expert: Erik Meijer and Michael Isard - Inside Dryad</title><description>&lt;img src="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_small_ch9.png" border="0" /&gt;Microsoft Research recently announced the availability, under &lt;a href="http://research.microsoft.com/en-us/downloads/03960cab-bb92-4c5c-be23-ce51aee0792c/default.aspx" target="_blank"&gt;Academic Licensing&lt;/a&gt;, of &lt;a href="http://research.microsoft.com/en-us/collaboration/tools/dryad.aspx" target="_blank"&gt;Dryad&lt;/a&gt;, an infrastructure which allows a programmer to use the resources of a computer cluster or a data center for running data-parallel programs. &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;A Dryad programmer can use thousands of machines, each of them with multiple processors or cores, without knowing anything about concurrent programming.&lt;/em&gt; &lt;br /&gt;
&lt;br /&gt;
That's a pretty heady statement. What does Dryad do, &lt;em&gt;exactly&lt;/em&gt;, to enable this level of abstraction, shielding programmers from the incredibly complex world of distributed parallel computing? Does the level of abstraction impact the degree to which sophisticated programmers can interact with and control some of the low level mechanisms of the Dryad runtime? What is it about LINQ that made it the no-brainer managed programming abstraction for Dryad? &lt;br /&gt;
&lt;br /&gt;
Simply, how does Dryad &lt;em&gt;work? &lt;/em&gt;This is the core question that Erik and I had after &lt;a href="http://channel9.msdn.com/posts/Charles/Expert-to-Expert-Erik-Roger-Barga-Introduction-to-Dryad-and-DryadLINQ/" target="_blank"&gt;our conversation with Roger Barga &lt;/a&gt;(part one of this E2E mini-series on Dryad and DryadLINQ - perhaps we should focus just on DryadLINQ next time, but for now, all the information in this conversation is certain to keep you very busy and answer many questions you may have after learning about Dryad in part one...). &lt;br /&gt;
&lt;br /&gt;
Lots of whiteboarding here. Put on your thinking caps!&lt;br /&gt;
&lt;br /&gt;
Enjoy.&lt;img src="http://channel9.msdn.com/479047/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Michael-Isard-Inside-Dryad/</comments><itunes:summary>Microsoft Research recently announced the availability, under Academic Licensing, of Dryad, an infrastructure which allows a programmer to use the resources of a computer cluster or a data center for running data-parallel programs. 

A Dryad programmer can use thousands of machines, each of them with multiple processors or cores, without knowing anything about concurrent programming. 

That's a pretty heady statement. What does Dryad do, exactly, to enable this level of abstraction, shielding programmers from the incredibly complex world of distributed parallel computing? Does the level of abstraction impact the degree to which sophisticated programmers can interact with and control some of the low level mechanisms of the Dryad runtime? What is it about LINQ that made it the no-brainer managed programming abstraction for Dryad? 

Simply, how does Dryad work? This is the core question that Erik and I had after our conversation with Roger Barga (part one of this E2E mini-series on Dryad and DryadLINQ - perhaps we should focus just on DryadLINQ next time, but for now, all the information in this conversation is certain to keep you very busy and answer many questions you may have after learning about Dryad in part one...). 

Lots of whiteboarding here. Put on your thinking caps!

Enjoy.</itunes:summary><link>http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Michael-Isard-Inside-Dryad/</link><pubDate>Tue, 21 Jul 2009 15:55:00 GMT</pubDate><guid isPermaLink="false">http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.mp4</guid><evnet:views>44598</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/479047/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Microsoft Research recently announced the availability, under &lt;a href="http://research.microsoft.com/en-us/downloads/03960cab-bb92-4c5c-be23-ce51aee0792c/default.aspx" target="_blank"&gt;Academic Licensing&lt;/a&gt;, of &lt;a href="http://research.microsoft.com/en-us/collaboration/tools/dryad.aspx" target="_blank"&gt;Dryad&lt;/a&gt;, an infrastructure which allows a programmer to use the resources of a computer cluster or a data center for running data-parallel programs. &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;A Dryad programmer can use thousands of machines, each of them with multiple processors or cores, without knowing anything about concurrent programming.&lt;/em&gt; &lt;br /&gt;
&lt;br /&gt;
That's a pretty heady statement. What does Dryad do, &lt;em&gt;exactly&lt;/em&gt;, to enable this level of abstraction, shielding programmers from the incredibly complex world of distributed parallel computing? Does the level of abstraction impact the degree to which sophisticated programmers can interact with and control some of the low level mechanisms of the Dryad runtime? What is it about LINQ that made it the no-brainer managed programming abstraction for Dryad? &lt;br /&gt;
&lt;br /&gt;
Simply, how does Dryad &lt;em&gt;work? &lt;/em&gt;This is the core question that Erik and I had after &lt;a href="http://channel9.msdn.com/posts/Charles/Expert-to-Expert-Erik-Roger-Barga-Introduction-to-Dryad-and-DryadLINQ/" target="_blank"&gt;our conversation with Roger Barga &lt;/a&gt;(part one of this E2E mini-series on Dryad and DryadLINQ - perhaps we should focus just on DryadLINQ next time, but for now, all the information in this conversation is certain to keep you very busy and answer many questions you may have after learning about Dryad in part one...). &lt;br /&gt;
&lt;br /&gt;
Lots of whiteboarding here. Put on your thinking caps!&lt;br /&gt;
&lt;br /&gt;
Enjoy.</evnet:previewtext><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_large_ch9.png" height="240" width="320" /><media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_small_ch9.png" height="64" width="85" /><media:group><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.mp4" expression="full" duration="3993" fileSize="393905418" type="video/mp4" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.mp3" expression="full" duration="3993" fileSize="31949579" type="audio/mp3" medium="audio" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.mp4" expression="full" duration="3993" fileSize="393905418" type="video/mp4" medium="video" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.wma" expression="full" duration="3993" fileSize="64603005" type="audio/x-ms-wma" medium="audio" /><media:content isDefault="true" url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.wmv" expression="full" duration="3993" fileSize="567261401" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_2MB_ch9.wmv" expression="full" duration="3993" fileSize="1249165897" type="video/x-ms-wmv" medium="video" /><media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_Zune_ch9.wmv" expression="full" duration="3993" fileSize="564989381" type="video/x-ms-wmv" medium="video" /></media:group><enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/7/4/0/9/7/4/E2EMichaelIsardInsideDryad_ch9.mp4" length="393905418" type="video/mp4" /><dc:creator>Charles</dc:creator><itunes:author>Charles</itunes:author><slash:comments>15</slash:comments><wfw:commentRss>http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Michael-Isard-Inside-Dryad/RSS/</wfw:commentRss><trackback:ping>http://channel9.msdn.com/479047/Trackback.aspx</trackback:ping><category>Architecture</category><category>C++</category><category>Cloud Computing</category><category>Concurrency</category><category>Distributed Computing</category><category>Dryad</category><category>DryadLINQ</category><category>Erik Meijer</category><category>Michael Isard</category><category>Parallel Computing</category><category>Programming</category></item></channel></rss>