Thursday, April 9, 2015

Disable uppercase menu in Visual Studio

When I started learning SharePoint I came across Visual Studio and its hideous upper case menu.


I don't know what was the reasoning behind this, but in Visual Studio Community 2013 version you turn this off to show more conventional title case menu.

For this go to "Tools > Options". Under "Environment > General" enable the option of "Turn off upper case in menu bar".


And you will get the menu in title case.


Monday, April 6, 2015

Split string in JavaScript using regular expression

JavaScript has split() method which returns array of the substrings based on the separator character used. But you can also split a string using regular expression.

Say you have a credit card number which you want to split in array of four substrings with each substring consisting of 4 digits. For that you would use the match method of string.

var strValue = "1111222233334444";
var splitValues = strValue.match(/(\d{4})(\d{4})(\d{4})(\d{4})/);

// Start looping array from 1st index position as 0
// index position contains the entire parent string
for (var i=1 ; i<splitValues.length ; i++) {
 // Loop through the elements
}

Here, you use the match method and pass it the regular expression of (\d{4})(\d{4})(\d{4})(\d{4}) to split it into four equal substrings of four digits each. One thing to remember here is that the string returned here contains the parent string at the 0 index position and then the split substrings start at 1st position.

There is limitation here though — you need to know the number of characters in the string before hand, which might not be the case always.

Thursday, February 5, 2015

Significance of BaseViewID="0" in schema.xml for SharePoint List Definition

Whenever you create a SharePoint List Definition in Visual Studio the schema.xml file contains two entries for View.

<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">

<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" 
      DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" 
      DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" 
      SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" 
      Url="AllItems.aspx">

Note that one of the views has BaseViewID="0" while other one has BaseViewID="1". The view with BaseViewID set to 1 is the default view with Url set to AllItems.aspx. But the view with BaseViewID set to 0 has no Url attribute set. Any modification for BaseViewID="1" gets reflected on the default view but I couldn’t figure out where the BaseViewID="0" view was being used. Even MSDN documentation is not very clear about it. A bit puzzled about this I posted this question on SharePoint StackExchange and was pointed to this answer which explains the reason for this additional view.

Wednesday, February 4, 2015

Prevent adding duplicates records from predefined data in ListInstance while reactivating its feature

In SharePoint if we have predefined data in ListInstance then deactivating and then reactivating its feature causes the predefined data to created again resulting in duplicates. Say, for e.g. our ListInstance looks something like this.

<ListInstance ...>
  <Data>
    <Rows>
      <Row>
        <Field Name="Title">Record 1</Field>
      </Row>
      <Row>
        <Field Name="Title">Record 2</Field>
      </Row>
    </Rows>
  </Data>
</ListInstance>

If we deploy this to a SharePoint site and if we deactivate and reactivate its feature then we will have “Record 1” and “Record 2” appear twice. Deactivating and reactivating it again would only create more duplicates.

Monday, January 19, 2015

Curse you Adobe!

Its 2015 and Adobe Reader still asks for system restart when it updates itself. It greets you with a dreadful message after every update:

You must restart your system before using Adobe Reader. Click Restart Now to restart automatically.

This wasn't the first time that I got this message and I am not the only one to question this (by the way this question was asked way back in 2011).

So when I got this popup again some days back, I accidentally clicked on "Restart Now". And my PC restarted itself. With me working on 3 different Word documents and 1 Excel worksheet. With a Ubuntu running in my VM. And it didn't even ask me if I wanted to close my open programs. It simply restarted.

I initially suspected this to be a problem with Windows; that it didn't ask me to close my open programs. So when today I got a couple of updates for my Windows, it again asked me for a restart. This time I opened up a Word document tried to restart to finish installing updates. It showed me message that I have some programs running. I closed my Word document and fired up my VM running Ubuntu. Again the same message.

So it seems to me that Adobe Reader's restart uses some kind of forced restart which does not care about the programs currently running on your PC. And that's why I say —

Curse you Adobe!

Sunday, January 18, 2015

Open command prompt from Windows Explorer in folder path and vice versa

Many a times you have Windows Explorer opened to a folder location and you need Command Prompt to be opened in that same location. Rather than opening Command Prompt and then navigating to the said directory there is a better way.

Hold down Shift key and right-click. Click on “Open command windows here”. This feature seems to have been present since Windows Vista.



Conversely, if you are in your Command Prompt in a specific folder and you want to open that folder in Windows Explorer then simply type in the following command:

Sunday, August 24, 2014

Installing Ubuntu on VirtualBox

I have a Windows 8 machine on which I will be installing Ubuntu 14.04 inside Oracle VM VirtualBox. First download VirtualBox and install it. For this example I am using 4.3.12. Download the image file for Ubuntu.

Once you have installed VirtualBox open it and click on "New" on the toolbar to begin the process of creating a new virtual machine.


Give a name to your virtual machine and select which OS you would be installing in it and click on "Next".