Rotor 2.0 Build Out

If you have had the pleasure of playing with Rotor in the past then you would be glad to know that MS recently released the version 2.0 of Rotor. This of course is officially called “Shared Source Common Language Infrastructure” and can be downloaded from here. Don’t let the 21.6 mb download fool you, when you extract it and build it you need over a gig of space (mine currently is just a tad under 1.4 gb). If you want to understand the CLR and how it performs Rotor is the best way to go about it.

While MS has a different implementation of the GC in the commercial version of the .NET runtime than the one in rotor, but the way I understand it is very similar and is an excellent source of understanding. Also the new implementation adds some of the .NET 2.0 new features such as generics, anonymous methods and delegates. And of course the code for the c# compiler, assembler, etc all is in there.

The JScript compiler is especially interesting, because of two reasons. One, it is written in C# and provides an excellent sample for how to write a large c# project and two, this is also an excellent sample on how to compile against the IL.

If you have not played with Rotor I would recommend something like the Shared Source CLI Essentials (note this is for the earlier version and not this one, but still should be valuable), just so you know your way across the code base.

There are enough gems in here to keep you busy for months – I think I’ll stop harping about it now. 🙂

Sharepoint v3 Installation Fails

I was trying to setup Sharepoint “v3” which is part of Office 2007; the Beta 1 Technical Refresh installs without a problem, but when I try and configure Sharepoint it fails in Step 2 and I get the error shown below. You can click on the image to see the full size.

However, when I trawl through the log file, I did find a few exceptions, a couple of which are listed below. The only reason the font is small on those is so it would fit and render fine in here. You can copy and paste that in notepad or something and see if in a bigger font; alternatively you can download the log file (see the end of this posting).

Exception 1:

Entering function CreateCentralAdministrationSiteForm.CreateCentralAdministrationSiteFormInitializeBeforeShow

A SocketException was thrown with SocketError ConnectionRefused
Connect has been refused for port 12838, so we will consider this a free port
Have not found a free port yet.  Number of tries is 1.  Min port we will try is 1024, Max port we will try is 49151
Leaving function CentralAdministrationSiteTask.GenerateRandomUnUsedPortForTheAdminVs
Leaving function CreateCentralAdministrationSiteForm.CreateCentralAdministrationSiteFormInitializeBeforeShow

Exception 2:

Entering function ResourceAccess.SetAccessRule
Entering function ResourceAccess.SetRegistryAccessRule
Entering function ResourceAccess.RetrieveRegistryRightsFromResourceAccessPermissions
Leaving function ResourceAccess.RetrieveRegistryRightsFromResourceAccessPermissions
Task secureresources has failed with an unknown exception
Exception: System.InvalidOperationException: This access control list is not in canonical form and therefore cannot be modified.
   at System.Security.AccessControl.CommonAcl.RemoveQualifiedAces(SecurityIdentifier sid, AceQualifier qualifier, Int32 accessMask, AceFlags flags, Boolean saclSemantics, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
   at System.Security.AccessControl.DiscretionaryAcl.RemoveAccess(AccessControlType accessType, SecurityIdentifier sid, Int32 accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
   at System.Security.AccessControl.CommonObjectSecurity.ModifyAccess(AccessControlModification modification, AccessRule rule, Boolean& modified)
   at System.Security.AccessControl.CommonObjectSecurity.ResetAccessRule(AccessRule rule)
   at System.Security.AccessControl.RegistrySecurity.ResetAccessRule(RegistryAccessRule rule)
   at Microsoft.SharePoint.PostSetupConfiguration.ResourceAccess.SetRegistryAccessRule()
   at Microsoft.SharePoint.PostSetupConfiguration.ResourceAccess.Secure()
   at Microsoft.SharePoint.PostSetupConfiguration.SecurityTask.SecureResources()
   at Microsoft.SharePoint.PostSetupConfiguration.SecurityTask.Run()
   at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()

I think I have everything outlined in the installation document for the Beta 1 Technical Refresh. BTW, I have this on Windows 2003 Enterprise Edition with SP1 and all latest patches. SQL Server 2005 Dev. Edition and VS.NET 2005 Professional Edition.

There are a couple of more exceptions along the same line – if it would help I have upload the full log file which you can download here (53 kb). But the real question is any idea what is broken and why?

Can you read this?

cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Amzanig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt!

Possibly no Macs on the Agenda

I had very seriously considered getting a Mac Mini – the new ones with the Intel CPU’s. But now that Microsoft has announced that there won’t be any EFI support in Vista, I am not so sure of getting a one now. I am a Wintel guy, and the reason for getting a Mac was from a pure geek-value in the short term, but in the longer term was to install Windows and use it as another machine. Since I have never done any development on the Mac and don’t plan to do anytime soon, if I cannot run Vista on it, then this is just a very expensive toy – and I don’t make that kind of money. 🙂

Microsoft says, Vista won’t support it, and while Longhorn would (thats the server edition of vista if you are not aware), but Longhorn is way out for me to buy a Mac today. Also there is no plans as of now to support this via a Service Pack. So with nothing on the horizon, the situation is quite bleak. 🙁

What is EFI you ask? Well it stands for Extensible Firmware Interface and essentially is the stuff that replaces your 20 year old BIOS. This is the thing then which is responsible for the POST and initiated all the hardware, drivers, etc. – hence you see my predicament. BTW, you can read more on EFI at Wikipedia.

So, if anyone has any ideas on how do I go about this, I am willing to humor you. 🙂

My next phone

I have finally bitten the bullet and plan to transition over to a Windows Mobile phone from my current Sony Ericsson (I have a P910i). The HTC Hermes is the phone I would be moving to, the ability to get email on the fly (blackberry style) is the main motivation. HTC Hermes (also know as i-mate JASJAM) is going to be released in a about 2-3 months and is ideal for my needs. You can read a review of this phone here.

So if in 2-3 months any of you interested in a Sony Ericsson P910i, then let me know – it would go cheap :).