Wednesday, November 24, 2010

Benchmarking the browser speed again

I did the browser speed test for all my browsers using SunSpider JavaScript way back in 2008 . When I installed IE 9 beta and after hearing all the "Beautiful web" marketing fundas from Microsoft, I was tempted to run the SunSpider script on IE 9 beta and other available counter parts.


Browser name
SunSpider(ms)
V8(ms)
Firefox 4.0b7
1416
583
Safari 5.0.2
1565
474
IE  9.0.7904
2143
337
Opera 10.63
1660
534
Chrome 8.0 beta
1984
1305
Firefox 3.6.10
3571
64.1


All tests were executed on Intel Dual core P8600 2.40 Ghz processor with 4 GB RAM in place.Results of Sun spider JavaScript in graph format below. Shorter is good.

There are also other alternatives available for benchmarking the abilities of a browser Google V8 benchmark suite and Mozilla Kraken. As Mozilla Kraken is based on Sun Spider and too young let us not consider for this benchmark.

Results of browsers on Google V8 benchmark suite v6 is (longer is good)
As Google considers its V8 benchmark suite v6 for its tuning purpose, it outperforms others pretty good.

Firefox 4.0 beta powered by Jager Monkey performs better than its predecessor Trace monkey(Firefox 3.6), Apple Safari's Nitro engine, Opera's Carakan & IE 9's the new Chakra engine.

Even though there is no significant change in Chrome's V8 engine, it still gives tough to other contenders. The most notable point is the Microsoft's transition  from Internet Explorer 8 to 9. MSFT changed the JavaScript engine, compatible with HTML 5, slick tear of tabs(like chrome), new tab page and new download manager(like Mozilla).

way to go Microsoft, but miles to go...

Thursday, November 18, 2010

SharePoint on Cloud from Microsoft Online Services

SharePoint Online is a cloud-based service for businesses. In SharePoint setting up a web farm and get it up running form small enterprise was always a challenge in terms of hardware cost, getting the expertise to set up the web farm, capacity planning etc.

Now Microsoft wants to bring SharePoint to the masses by exposing it in the cloud thus it takes care of the infrastructure, scalability of the web farm, maintenance & patching the systems with less or no downtime and calculation of volume licensing(ever did or try to find the licensing math) with as low as 10$.

Reach out to SharePoint Online for small business which provides information related to the small enterprises. Developers can reach out to Developer resource center for understanding developer features available. I believe there should not be major change Developer resource centers with the API for development.

Finally SharePoint also joins the Cloud band. hmm.. result of significant innovation and development in virtualization arena.

Friday, October 22, 2010

Fetching from SharePoint Lists using ACE OLE DB

There are varieties of ways available to access a sharepoint list object model, web services, RPC, DAV. Recently gotta chance to work with Microsoft ACE OLE Db objects, while playing with the object came across a strange connection string from Connectionstrings.com which just provides a connection string for a sharepoint list.

This approach is not officially documented anywhere, I thought of giving it a shot and its working too. Here's the code to display values fetched from SharePoint list using OLE DB data reader.



string connString = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=2;RetrieveIds=Yes; DATABASE=http://foo/;LIST={7F72D985-5219-4E8A-AA56-C4473902A333};";
OleDbConnection conn = new OleDbConnection(connString);
            conn.Open();
OleDbCommand command = new OleDbCommand("select * from States", conn);
            OleDbDataReader dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
               Console.WriteLine(dataReader["Title"]);
             }



This approach is strictly for development environment ONLY.

Tuesday, September 28, 2010

Show communicator status in your custom application pages

When ever we show a username in a custom application page or in a custom web part, adding that small presence aware icon before the user name will be a value addition to the end users which allows to see the person's availability.

An ActiveX control called NameCtrl in Name.Dll is responsible to retrieve the user status and rendering.

Use the following snippet, get the string and render it on your custom page to make the presence aware work for you. Ensure Ows.Js is referenced in your master page, this javascript is responsible for instantiating the ActiveX control and rendering.

public static string GetIMStatusForUser(string personEmail, string personName)
{
string statusJS = String.Format("<span><img border=\"0\" height=\"12\" width=\"12\" src=\"/_layouts/images/blank.gif\" onload=\"IMNRC('{0}')\" id=\"IMID\"
ShowOfflinePawn=1><a href=\"mailto:{0}\">{1}</a></span>",
personEmail,personName);
return statusJS
}

Monday, September 27, 2010

Configuring Location based Metadata in SharePoint 2010

Location based metadata which manages to inherit default metadata values from its immediate parent. This is a nice feature in SharePoint 2010 and its available out of the box with few configuration steps.

Configuring default metadata

1. Add the required folder structure to your document library, in this example it is

Root->Hardware->Router
Root->Software->Microsoft

2. Add the required column to the document library, in this example it is "Classification" and click on "Column default value settings"
click on the required  folder in left pane, choose the column name in the right pane. You will be seeing a popup as below
Change the radio button to "Use this value" and enter the default value in the text box. This value will be inherited in all the documents which will reside in this folder.

Provide a different value for the subfolder "Router" inside the Hardware folder.

Upload a file to Hardware folder and note the "Classification" metadata is pre-populated
Similarly if we upload a file in "Router" folder the classification will be pre-populated as we've provided earlier.

SharePoint 2010 registers a Item Added event reciever(Microsoft.Office.DocumentManagement.LocationBasedDefaultsReceiver ItemAdded) to the document library upon first access of this feature.

Refer the following MSDN articles for more info
http://msdn.microsoft.com/en-us/library/microsoft.office.documentmanagement.metadatadefaults.aspx
http://msdn.microsoft.com/en-us/library/ee557925.aspx

70-542 MOSS 2007 App Development completed

Completed 70-542 Microsoft Office SharePoint Server 2007, Application Development last week end

With SharePoint Server 2010 in the ring, it's late but good to complete the 2007 series before jumping to 2010 bandwagon

Useful links for preparation:

  1. http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!192.entry
  2. http://thepointyheads.com/2009/10/microsoft-exam-70-542-comprehensive-list-of-training-materials-for-every-section-of-the-exam/

Wednesday, September 1, 2010

Unlocker : Error debug privileges

If the user doesn't have permission for remote debugging,Unlocker  will fail with the following error message

Error Debug privileges

Provide Debug privileges for the user in the target machine to satisfy Unlocker

Start -> Run -> "secpol.msc" then click ok
Expand "Local Policies" in left pane
click the "User Rights Assignments" folder
On the right hand screen double click "Debug Programs"
Click the "Add User or Group" button
Click the "Advanced" button
Click the "find now" button
select your "user logon name" and then click the "Ok" button



Changes will take effect after a logoff or a reboot.