Friday, January 21, 2011

Reactive Framework for .NET documentation

I do not enjoy one thing about RX.NET, the documentation. There is no such thing as a good documentation, or tutorial for this framework. There is a wiki, but It didn't save my day yet. As a result and easy task sometimes takes a while. Starting from looking at the methods, classes, types, extensions available, thru adding reference to something, and finally using it in a proper way. Today as an example I was playing with EnumerableEx, but first I had to ad a reference to it in my project. So I added a reference to System.Reactive, but it wasn't there, I checked if ReSharper will help me, but it was unable to figure out what was I up to also. I added a reference to Syste.CoreEx, but it wasn't there. Finally I added a reference to System.Linq.Async, System.Interactive, System.Reactive.ClientProfile, to figure out that EnumerableEx is a static class defined in System.Interactive. Usually, when I learn a new framework, or a set of libraries, I spend some time looking at public methods, data types, and basically a new arsenal that I can use. Just to have a high level view at what can I use. I strongly recommend looking at RX.NET classes before using it, it saves time later on, when one is trying to achieve something but is unsure if it is possible to do or one is using a wrong method for doing a wrong thing.

Curry’s anticipation of the types used in programming languages

I found a really interesting paper about types. Well written, easy read. It gave me a great background of history of combinatory logic, how it evolved and fought for it's place in a current math world. Enjoy the reading.

Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire

Today I finally found time (and will) to read a this classy paper. My first impression, well written, it is not boring, or too technical/mathematical. If a term might be unclear or unfamiliar to the read, then there is a reference to it, and there are plenty of resources on the web to get you going. Personally, it challenges me to start a small research on some subject while reading a paper, and it only makes a main paper more interesting. I hate when I need to read a paper that deals with a subject that I am familiar with, and when I have to go through all the basics and easy stuff (stuff that I already know) just to find an answer to the question that I am looking for.

Sunday, January 16, 2011

Ghostscript for GSView under windows 64 bit arch

I was trying to find forgotten by me information about type reduction for lambda calculus. I went to get Barendregt Lambda Calculi with Types, to find out that it's Postscript version. Because on my fresh box I didn't have GSView I had to download it from a web. By default it tries to find gsdll64.dll in it's path, but a compiled version of a new release of Ghostscript (9.0) is delivered in a plain file form - it does not install anywhere and does not register itself in any path. In order to make it available for GSView one needs to fire up GSView and select Options->Advanced Configure-> in 'Ghostscript DLL' insert a path to the library.

Saturday, January 15, 2011

Biosimilarity




We did it! Lucius Gregory Meredith was resin money for his book - Monadic Design Patterns. Greg is a full time (hard) worker and was having trouble to find time to finish writing his book. He wanted to make it good and helpful to other people, and making something good or even better requires time. I also find myself doing much better job when I do not have some other tasks on my mind, so truly understand his position. Greg was able to gather enough money by Kickstart web page to take a career break (or at least few days break) and spend his time on writing his book. Greg good luck, and hope to receive my copy as soon as it is going to be ready. Just want to add that Greg is one of the best Computer Scientists/Mathematicians that I met in my life, he is somehow my mentor and guru. Cheers.

Monday, January 10, 2011

OpenWrap vs NuGet




I've been using OpenWrap for some time now. So far I haven't found any problems with it. It just does the job. But the time goes by and there is still one more tool to try. Today on my fresh machine I installed NuGet, I hope that it is as good as OpenWrap.

I did a little research, trying to find developers suggestions why one tool is better then other. I was unable to find anything that convinced me. Here is some nice article summarizing why OpenWrap is good. But then again NuGet is deployed on Codeplex, and the platform introduces it to a wider range of developers. And also Scott Hanselman and Phil Haack blogged about it, so there is some chance that they stick to NuGet.

Sunday, January 9, 2011

Particle Video

I really enjoy, some projects that people have. By just looking at it I can see that the person who did it, spent plenty of time making it good, and he had a great time doing it. That's why I enjoy the final (or at least current) version so much.

Saturday, January 8, 2011

Common config for Sharepoint 2010




As always when the new SharePoint installation is deployed I tend to think about it's framework. As we know SharePoint is compiled to work with .NET framework 3.5, actually it works best with .NET 2.0 and I found myself doing hacks, from time to time, to make it work with 3.5 library. And I don't get it when people say that SharePoint 2010 works with .NET framework 3.5 Service Pack 1, it is so misleading. The truth is that SharePoint 2010 is compiled against .NET in version 3.5, and this version of ASP.NET framework is based on 2.0 runtime, it is because .NET version 3.0 and 3.5 did not change the runtime. Why can't I use framework 4.0, why people at Microsoft thought It would be great not to allowed SharePoint, to work with .NET 4.0 libraries? I can only guess that they wanted to realese new version as soon as possible, and didn't want to experiment with a new runtime, that probably did not exist when they started the project (or what is more probable it was unstable and no one knew if it is going to be stable on time). The result of those actions is my headacke, each time when I try to create architecture in order to overcome framework problem. In example I have to host WF4.0 workflows as WCF services in order to use it.

The next thing I do not like in SharePoint 2010 is it's configuration. Everything is done through XML, and there is no fluent, that I am aware of to make it simpler. In example, when I work in my development environment, and I have a fresh SharePoint installation I look at the web to find how to turn on error logging, that are developer friendly. As always it takes time to find in on the web and modify web.config.


<SharePoint>
<SafeMode CallStack="true" ...>
</SharePoint>
<system.web>
<customErrors mode="off">
</system.web>


Why can't you Microsoft make it more friendly?

Sharepoint 2010 on Windows 7




I finally did it! I was working on my mac dual boot (Leopard, Windows 7) box for a long time. Long time ago, I've chosen a Windows 7 32 bit operating system, instead of 64. I did it because when Microsoft released Windows 7 on 64 architecture I was struggling to do anything on 64 bit configuration (on my personal laptop), and I didn't want to face this same problems on my stationary computer at home. By problems (ehm... challenges, as my mentor once said) I mean majority of 3'party applications, or even applications written by Microsoft did not work on a 64 bit Windows 7. Those were a tools that everyone (developer) uses like SQL Server Management Studio Express, Remote Desktop, ... until updates were written and new version of products were released I spent many nights trying to find a tool that allowed me to do my job, that would be easily done by a tool that I knew, but was not willing to run on Windows 7 64.

Recently I find more (but still not many of them) applications that work only on 64 bit architecture. One of them in SharePoint server, and SharePoint foundation 2010. By not working on 32 bit architecture I mean that you can not even run the installer, It will simply not work. What you can do if you are desperate - you can virtualize the SharePoint image on your 32 bit computer. But it requires a different tool then Microsoft Virtual Server. You need a tool that can emulate the 64 bit architecture on top of 32 bit one (like VMWare Server, witch is also free). Some (I don't know any tool that does not) of emulating tools, like VMWare Server require you to have a special mother board that allowed such configuration (I mean that allowed emulation of 64 bit system on 32 bit one). Architectural and bits problems, It all always reminds me about old time programming for Windows, Petzold in his excellent book, spent tremendous work trying to explain to people why, for windows programmer, architecture mater. It's amazing that this book was released in 1998 (my version is from year 2001, and still keeps it's price) by current developers are facing this same challenges.

I finally reinstalled my windows system to take advantage of the 64 bit architecture. Unfortunately still I faced some problems in SharePoint installation. The normal SherePoint Server and SharePoint Foundation installer wont work on other operating system then Windows Server 2008. One needs to follow instructions. I would add some comments to this documentation. The command that needs to be triggered to unpack SharePoint Foundation installation is different:

SharePointFoundation.exe /extract:c:\SharePointFiles

And yes, you DON'T need to copy installation to following location:

C:\SharePointFiles

You can do it wherever you want.

The following command didn't work for me, and I didn't need it to install SharePoint:

c:\SharePointFiles\PrerequisiteInstallerFiles\FilterPack\FilterPack.msi

There error I received when trying to run this command was exactly this same as when trying to run default SharePoint installer - it requires Microsoft Server 2008.

If you installed Visual Studio 2010 you DON'T need to install following dependencies (even when you install SharePoint Foundations):

Microsoft Sync Framework
SQL Server Native Client
Chart Controls
SQL Server Analysis Services - ADOMD.Net


You need to install following dependencies:

Windows Identity Foundation (I got mine from here, for Windows 7 64bit version 6.1)


You DON'T need to fire up this instruction

start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;
IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;
IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;
IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;
IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ManagementScriptingTools;
IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;
IIS-RequestFiltering;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;
IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-IIS6ManagementCompatibility;
IIS-Metabase;IIS-WMICompatibility;WAS-WindowsActivationService;WAS-ProcessModel;
WAS-NetFxEnvironment;WAS-ConfigurationAPI;WCF-HTTP-Activation;
WCF-NonHTTP-Activation

Just be sure to go to ControlPanel->Programs->IIS and enable all the features underneath IIS, that are showed in the documentation (I mean the SharePoint installation instruction for Windows 7 mentioned before).

Thursday, January 6, 2011

SISAL language




Some time ago I was reading a really good article by MarkCC. Because recently I am struggling with implementation of Knuth's algorithms in my favourite languages (Scheme and recently Haskell) I was looking for something less declarative and more strict (in terms of how algorithm is going to be computed). I found SISAL, a really interesting language designed in 1983 (my favourite year), and with a design that is totally 21 century - the language by design supported concurrency, and was designed to have a Fortran like performance, SISAL is functional and you can compile it's code. Because lately I see only articles that deal with Scala, Groovy and other languages that are well know (from the set of a not main stream languages) I thought that would be a great idea to introduce some completely different programming language that looks at the programming problem from a different perspective. Give it a look.