tag:blogger.com,1999:blog-61824949409698140612024-03-13T14:49:47.474-07:00Pillow On SoftwareUnknownnoreply@blogger.comBlogger5125tag:blogger.com,1999:blog-6182494940969814061.post-34666815688526038362012-03-11T13:11:00.000-07:002012-03-11T13:11:58.280-07:00Reactive Extensions and MonoTouch<b><span style="font-size: large;">A little about RX</span></b><br />
<br />
Microsoft's Reactive Extensions, referred to as RX, are a fascinating and powerful way to build async software. It's based on concepts from <a href="http://en.wikipedia.org/wiki/Linq">LINQ</a>, <a href="http://en.wikipedia.org/wiki/Functional_programming">functional programming</a> and the <a href="http://en.wikipedia.org/wiki/Observer_pattern">observer pattern</a>. Google "reactive extensions" and you'll find tons of material to learn from. Check out my blog page <a href="http://pillowonsoftware.blogspot.com/2012/03/good-reactive-extensions-and-functional.html">here</a> for a number of videos on it.<br />
<br />
You can use RX with Windows Forms, WPF, WP7, and Silverlight. Alas, RX is only proved in dll form from Microsoft. This poses problems when you are trying to use it with MonoTouch as the RX framework dll's were built targeting the Microsoft system dlls. While MonoTouch is close, it's not always close enough to work. I did an experiment using Mono.Cecil to retarget the libraries and fix up some issues, but it looked live a never ending sink of time as news issues would pop up as RX changed.<br />
<br />
<b><span style="font-size: large;">Getting it to run on MonoTouch with mono-reactive</span></b><br />
<br />
Luckily two new things have happend that look to allow RX on MonoTouch, completing the circle of cross-platform abilities. The first is a github project by Atsushi Eno called <a href="https://github.com/atsushieno/mono-reactive">mono-reactive</a>. It is a open source reimplementation of RX for Mono and potentially MonoTouch/MonoDroid. I decided to see if we could get it up and running on MonoTouch. The first thing that was needed was a UI dispatcher to handle updating on the UI thread form RX threads. I started with one that Paul Betts had on his <a href="https://github.com/xpaulbettsx/ReactiveUI">ReactiveUI</a> project on github and tweaked it a bit more to work with mono-reactive. I decided to bring up the RX standard "Time Flies Like An Arrow" demo, which I believe was originally done in Javascript <a href="http://blogs.msdn.com/b/jeffva/archive/2010/03/17/reactive-extensions-for-javascript-the-time-flies-like-an-arrow-sample.aspx">here</a>. Alas, my first attempt did not work as there were some issues with the Delay() method in mono-reactive. I posted an issue on the github site and Atsushi was speedy in fixing it (thanks!),<br />
<br />
I've posted the project on <a href="https://github.com/pixelmeister/MonoTouchRXDemo">github</a> here and you can give it a try on your iphone/ipad. Note, it seems to work pretty well, but I think using the dispatch queue calls in grand central might work better. Alas, I don't think the dispatch queue calls that allow a delay, are currently bound in monotouch yet (note I need to submit a bug on that). Also, I posted it with the code from the revision of mono-reactive that I know works. Atsushi has made many more fixes and you should pick them up before doing more work on it.<br />
<br />
I am currently using mono-reactive in apps I am writing with MonoTouch right now. Note, it has some rough edges, but you can find them pretty quickly by testing the RX portion of your code cross-platform over on windows. I also have an small event bus that uses RX for loose couple and it saves a lot of work in MonoTouchfor me (I'll post it soon too). Again, I'd like to thank Atsushi for his work. It's a fair amount of very non-trivial code and I appreciate his efforts. The general issue is the same as Mono has. I.e. how to keep up to date with changes Microsoft makes. Ideally, MS might open source RX, but that's unlikely to happen. The good news is that something almost as good has happened.<br />
<br />
<b><span style="font-size: large;">The next approach...</span></b><br />
<br />
Microsoft just recently released the latest beta of RX 2.0 and the released it as a portable library (well, the portable parts that is). <a href="http://msdn.microsoft.com/en-us/library/gg597391.aspx">Portable libraries</a> are a wonderful new thing that has been in beta with VS 2010, is included standard in VS2011 and is soon to be a part of <a href="http://tirania.org/blog/archive/2011/Oct-14.html">Mono/Touch/Droid</a>. Portable libraries allow you to write .NET code that targets a fairly large subset of the Winforms/WPF/WP7/Silverlight platforms, build the library once as a dll and use that dll with all those frameworks. The key then is to split frameworks that you build into portable and non-portable parts.<br />
<br />
What MS has done with the latest <a href="http://www.microsoft.com/download/en/details.aspx?id=29058">RX 2.0 beta</a> is to create a portable version that splits the framework into two parts, one that is a portable library that can run on any .NET platform that supports portable libraries and a set of non-portable dlls that implement the platform specific threading and ui dispatching calls. What this means is that once Mono/Touch/Droid supports portable libraries, that the mono-reactive part can become a very small library just containing the platform specific parts. Thanks MS and the RX team for doing this!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6182494940969814061.post-16520166804121951022012-03-08T06:23:00.006-08:002012-03-08T06:23:48.212-08:00Math extensions for .NET<span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;">Check out </span><a href="http://blogs.msdn.com/b/kaelr/archive/2008/05/12/mathextensions.aspx" style="background-color: white; color: #bc7134; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;">this</a><span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;"> nice file of extensions for Math in .NET to make your math clearer. The idea is to apply the </span><a href="http://en.wikipedia.org/wiki/Fluent_interface" style="background-color: white; color: #bc7134; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;">fluent programming</a><span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;"> techniques to math usage in .NET. The basic idea is to turn something like this:</span><br />
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="color: #333333; font-family: Consolas, Courier; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">if </span>((y <= x && x <= z) || (y >= x && x >= z))</span></div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="color: black; font-family: Helvetica; font-size: small; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">into this:</span></span></div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="color: #333333; font-family: Consolas, Courier; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">if </span>(x.IsBetween(y, z))</span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6182494940969814061.post-6166181710424431252012-03-08T06:23:00.003-08:002012-03-08T06:23:29.013-08:00Debugger Canvas - Next generation debugging visualization<span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;">These folks have developed a very interesting new tool for debugging visualization. Check out </span><a href="http://research.microsoft.com/en-us/projects/debuggercanvas/" style="background-color: white; color: #bc7134; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;">Debugger Canvas</a><span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;">. There's a link on the page to the blog on it and they just posted a nice overview video </span><a href="http://www.youtube.com/watch?v=3p9XUwIlhJg&feature=player_embedded" style="background-color: white; color: #bc7134; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;">here</a><span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;">. Best to watch it in HD.</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6182494940969814061.post-31986108072367043742012-03-08T06:23:00.000-08:002012-03-08T06:23:04.057-08:00.NET Transpilers: Pit - F# to JS Compiler<span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;">Make sure to check out </span><a href="http://pitfw.posterous.com/" style="background-color: white; color: #bc7134; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;">this</a><span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;"> new open source project that transpiles F# to Javascript. There are a lot of fascinating transpilers coming out and it's nice to see some of them open source or affordable.</span><br />
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
Others of note int the .NET space are:</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<a href="http://jsil.org/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">JSIL</a> - converts .NET CIL bytecode to Javascript. This approach is interesting that you don't have to sprinkle your app with annotations all over the place to get it to build.</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<a href="http://sharpkit.net/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">SharpKit.Net</a> - converts annotated C-Sharp method and classes to Javascript. This is commercial., closed source, but affordable and has probably the most complete implementation of the C-Sharp language.</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<a href="http://www.websharper.com/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">WebSharper</a> - another commercial product. It's notable for being very complete and they have a wonderful set of bindings to many popular Javascript libraries. With great capability also comes greater cost. Seems you pay for what you get :)</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
There are several others in the .NET space as well and many coming outside of that (Dart, CoffeeScript, Clojure, etc.) Most of the ones outside of the .NET area don't seem to focus on strong typing. I'm a big believer that strong typing catches bugs early and believe thats' the way to go. I was bit dismayed at the Build 2011 announcements. I had hope that Microsoft rather than introducing the ability to develop .NET apps in Javascript, would rather have come up with a comprehensive solution to handle targeting Javascript and HTML5 via C-Sharp and F-Sharp.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6182494940969814061.post-47065384812621507432012-03-08T06:22:00.001-08:002012-03-08T06:22:37.387-08:00Good Reactive Extensions and Functional Programming Video Links<span style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; text-align: left;">I recently attended the "Lambda Lounge" in Indy. It's a great Meetup group on functional programing. I shared some links with them that I enjoy on Reactive Extensions, FP, etc and thought I'd share them here too.</span><br />
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
Links for sites on Reactive Extensions, etc. that I mentioned at the Lambda Lounge:<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
Bart DeSmet's Blog: He has a lot up there, but this is to his tag on FP.</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://community.bartdesmet.net/blogs/bart/archive/tags/Functional+programming/default.aspx" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://community.bartdesmet.net/blogs/bart/archive/tags/Functional+programming/default.aspx</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
He's also one of the co-authors on the Reactive Extensions. You can find a lot of great videos on that here:</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Tags/reactive+extensions" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Tags/reactive+extensions</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
With the blog and videos, make sure to start with the oldest and work your way to the newest entries or you'll probably get confused.</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
Great videos on F# here:</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Tags/fsharp" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Tags/fsharp</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
Erik Meijer, Brian Beckman and Greg Meredith are FP guys as well and have some great videos too. Check these out:</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Shows/Going+Deep/E2E-Whiteboard-Jam-Session-with-Brian-Beckman-Greg-Meredith-Monads-and-Coordinate-Systems" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Shows/Going+Deep/E2E-Whiteboard-Jam-Session-with-Brian-Beckman-Greg-Meredith-Monads-and-Coordinate-Systems</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Hidden-Markov-Models-Viterbi-Algorithm-LINQ-Rx-and-Higgs-Boson" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Hidden-Markov-Models-Viterbi-Algorithm-LINQ-Rx-and-Higgs-Boson</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/shows/Going+Deep/E2E-Brian-Beckman-and-Erik-Meijer-CoContravariance-in-Physics-and-Programming-1-of-2/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/shows/Going+Deep/E2E-Brian-Beckman-and-Erik-Meijer-CoContravariance-in-Physics-and-Programming-1-of-2/</a></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Shows/Going+Deep/E2E-Brian-Beckman-and-Erik-Meijer-CoContravariance-in-Physics-and-Programming-2-of-2" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Shows/Going+Deep/E2E-Brian-Beckman-and-Erik-Meijer-CoContravariance-in-Physics-and-Programming-2-of-2</a></div>
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Shows/Going+Deep/E2E-Brian-Beckman-and-Erik-Meijer-CoContravariance-in-Physics-and-Programming-3-of-3" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Shows/Going+Deep/E2E-Brian-Beckman-and-Erik-Meijer-CoContravariance-in-Physics-and-Programming-3-of-3</a></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Greg-Meredith-Monadic-Design-Patterns-for-the-Web-4-of-n" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Greg-Meredith-Monadic-Design-Patterns-for-the-Web-4-of-n</a> </div>
</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
There's more on Channel 9, so just surf to see what you find interesting.</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
F#'s percursor is OCaml. They share a lot in common and theres's lots of info on it on the web as well.</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
A few other pages to check out:</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://conal.net/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://conal.net/</a> (functional programming, functional reactive programming and use of composition in functional programming)</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
a great blog that has a lot of FP news:</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://lambda-the-ultimate.org/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">http://lambda-the-ultimate.org/</a></div>
</div>Unknownnoreply@blogger.com0