Sunday, 28 December 2014

Adding multiple group owners for SharePoint 2010 site

When you edit the Group Settings for a SharePoint group, and try to add multiple owners so that they can all edit the membership for this group; you got the message:

You are only allowed to enter one item.

The workaround for that is to define the group owner as another SharePoint group rather than multiple users.

Thursday, 25 December 2014

SharePoint 2010 Custom List: Row Level Secuity

Business Case: Sharing a comprehensive list data among different stakeholders where every stakeholder can view\read only those row as per her Role\Unit

(1) Export the existing list data into SharePoint custom list including the column: Unit.
(2) Add a new empty temporary column: trigger update.
(3) Build a row level security based on the field row for each row.

Let's elaborate on step number (3), where we are going to create a new workflow assocuated with this list and to run on every Create\Update item.

a) Create Permissions groups within SharePoint. 
Each Group will be equivalent to each Unit, same name.

b) Create the workflow:
1) Open the SharePoint site with Microsoft SharePoint Designer.
2) Navigation --> Site Objects --> Lists and Libraries --> Open that specific custom list with the data.
3) From the upper toolbar: list Workflow to create a list workflow.

4) Set Start options for the workflow: Item Created\Changed.

5) Edit Workflow.

6) Click Impersonation Step on the top toolbar to add a new Impersonation step, then remove the existing Step 1.

7) Click on the orange underline to activate the toolbar Action button.

8) Add a new action: Replace List Item Permissions.

9) Similarly, beneath it, add a new action: Add List Item Permissions.

10) Since we are interested to set the security on the item level, this workflow will do the function on the current item, replace this list in both steps with Current Item

11) To guarantee that the owners still have the permissions to access this list item, grant site owners all the permissions in the first replace step.

12) Now, to the core idea which is matching the field Unit with the equivalent group.
The result is that each row will have Read Access granted to the group members for the equivalent members of the group with the same name.

13) Save and Publish.

14) It is recommended to break the inheritance for this custom list so that the list items would be immune to any permissions changes at higher levels.

15) One time step: activate the workflow on all the items through through filling in the temporary column  created earlier: Trigger Update. A simple way to do it is through filling it within the Spreadsheet view for the list. Delete the temporary column:Trigger Update from the list.

Tip, SharePoint 2010: Easier way to change Date &Time list column types into Date Only

The normal way (Through SharePoint website)

The easy way (Through SharePoint Designer application)

Microsoft SharePoint Designer --> Open Site --> Lists and Libraries --> Select a specific list --> Edit list columns --> Filter column Type (Select Date and Time)

Double click to open column editor (right click to open Column settings, Same Dialog!!! ) --> change Display format into Date only

Thursday, 27 November 2014

Attach database failed for Server. (Microsoft.SqlServer.Smo) An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo) Unable to open the physical file . Operating system error 5: "5(Access is denied.)". (Microsoft SQL Server, Error: 5120)

Connect to the server using an administrator account with access to the file system for the database files and through Windows Authentication rather than using sa through SQL Server Authentication.

Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

This command just surprisingly solved it:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

This repeats IIS registration\installation although I had no problem while installing it as Windows Feature.

Wednesday, 26 November 2014

Taking a SQL server database offline fails or killing a database connection

In most cases, when the operation for taking a database offline; this is attributed to connections established to this database. The apparent solution is to close the locking connections, the below is how to force them closed.

Use [master]


spid | ecid | status   | loginame | hostname | blk      | dbname | cmd 
58    | 0     | sleeping| user1        | user1PC   | NULL| MyDB   |LOG WRITER      


Command(s) completed successfully.

- sp_who2 provides even more details about the current connections.
- No need to mention that you must have the appropriate rights on the master database to perform this commands.

Monday, 24 November 2014

Holidays calendar in an easy to import to Outlook calendar format

1.Create a new file "2015_Holidays.hol"

2. Add the required holidays text in the file in the following format:

[My 2015 Holidays] 4
New Year's day,2015/01/01
Coptic Christmas,2015/01/07
Holiday #4,2015/10/20

3. Open the file where Outlook is installed to import the holidays directly to your profile calendar.

* Good reference about that same topic:
Add or delete holidays and custom events in your calendar:

Thursday, 6 November 2014

Moving iPad Keyboard - docking\undocking

The trick is that you have to keep tapping the keyboard button until the menu appears:




Wednesday, 5 November 2014

MS Excel: Enclose text in double quotes

Assuming that the target column with the text values is A:

1) Create a new column with the following expression: = """" &A1 & """" at the first cell. Drag\Double click to fill the whole column.

2) Copy the values from this new column, and paste them Paste Special --> Values into a third column. Drag\Double click to fill the whole column.

3) You can now delete the original column A and replace it with the column in step (2)

Migrating contacts from HTC Cha Cha Android phone to iPhone

1) Export contacts from the device into the SD card memory in vcf file format. Unfortunately, this would be extracted into a single vcf file, so MS Outlook is unable to import directly.

2) Convert this single file into a vcf file per contact:
   a) Import the file into Windows Contacts: %userprofile%

   b) Export the contacts into vcf

3) Drag and Drop all the vcf files into the Contacts\People folder for MS Outlook 2013.

4) Export all the contacts from MS Outlook into csv file which is a very versatile format and widely supported.

5) Import the just exported file into any mail service, in my case, I have used my gmail account at

6) Configure iPhone to contacts to synchronize with the gmail account.

7) Done! All your contacts are now within your iPhone phone application\service contacts.

HTC Cha Cha - Android OS
Windows 8.1
MS Office 2013
iPhone iOS 8.1

Thursday, 16 October 2014

Changing Chrome Internet connectivity settings on Windows: Internet Options

Fortunately, it is using the Operating System Internet Options dialog which typically can be easily displayed from Internet Explorer.

Internet Explorer* --> Tools --> Internet Options

* Internet Explorer 11.0.9600
Windows 7 Professional SP1 64-bit

Wednesday, 24 September 2014

Three reasons can render you idle in your busiest days!

There are always some periods through our workdays when we are so overwhelmed to the extent that we are literally paralyzed. This is the situation when we are unable to progress in any of the areas where we should be exerting more effort.

Stress can be one of the biggest factors that disseminates the negative energy within our whole beings. So many projects, inefficient communication and un-prioritized task lists are among the very common sources

Shortage of resources such as having a shortage in funding for your projects or the man power for implementing the actual work can be the second reason. When there are so many opportunities; however, for each one, there is always that small piece which is missing. Moreover, this can take the other form when you are so busy doing operational work to the extend that you cannot plan any reasonable schedule for a very promising project staying out there in your queue.

So little resilience in making your choices is apparently another good reason. This is to a great extent coupled with a micro manager who dictates not only the task but also the method to do the task, and expecting that the outcome would be at least coinciding with what she expects. This scenario can result in being unable to proceed or deliver due to the least missing details within the implementation strategy previously communicated. The focus here is on following the steps rather than delivering the outcome and the outcome is assumed to be a guaranteed fruit for the steps performed.

Monday, 8 September 2014

Server Error 500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.

I problem which might have kept me overnight in the office!!!

Microsoft IIS 7.5
Windows Server 2008 R2

Trying to share the root web folder.


Server Error
500 - Internal server error.

There is a problem with the resource you are looking for, and it cannot be displayed.

- Removing the share.
- Deleting the Temporary ASP.NET files
- Restating the  IIS

1 - Creating a new web root folder and moving all  the application folders to this new folder.
2 - Configuring all the application folders to point to the new folder.

Monday, 18 August 2014

Forget about: Dear Sir or Madame, ....

Whenever I start a communication addressing someone whom I do not know, the first and easiest thing that comes to my mind is to address it to something like:

Dear Sir or Madame, ...

However, by experience and I mean it by personal experience, it is the first and easiest opening that makes the impression for the recipient that  the content is important, for the simple reason that the sender is a complete stranger who does not know the least about me whether I am a male or a female!

I can suggest that usually a very little search about the recipient will highly improve the efficiency for the communication, and in the very rare situations where the least about the recipient can not be concluded; a better alternative would be using the recipient title like:

Dear Agent,
Dear Chief....,
Dear IT specialist,

Monday, 11 August 2014

Database diagram support objects cannot be installed because this database does not have a valid owner

TITLE: Microsoft SQL Server Management Studio
Database diagram support objects cannot be installed because this database does not have a valid owner.  To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.

This error happened after an upgrade, the owner was already set as sa, so the solution was to change ownership into another login, then return it to sa.

Tuesday, 5 August 2014

Tip: Opening Internet Properties without opening Internet Explorer

Although the Internet Options dialogue box appears as a implicit component within the Internet Explorer, it can be called separately without the need even to open the browser. This is very helpful especially if you are using a laptop like me, and within the office you need to enable  the proxy settings and to disable it every time you are out of the office. Moreover, knowing that most other applications read from that place for the proxy settings, it appears to me as a very handy shortcut.

Thursday, 31 July 2014

A lot more to know about RTL [Reference to external article]

Ahmed Alfy has developed a very neat article talking about localizing the user interface for web applications in general.

RTL (Right to Left) refers to the direction change for some languages which is required as one of the basic steps for localizing these applications.

Let's Talk About RTL


Sunday, 27 July 2014

KPIs for Professional Services Organizations [reference to external article]

I just came into an article proposing the KPIs (Key Performance Indicators) the author promote them as essential for PSOs (Professional Services Organizations), and I felt like sharing it since I found it very neat and away of many jargon complications:

Thanks Jeanne Urich!

Thursday, 24 July 2014

Store and retrieve binary files (blob) into\from MS SQL server using VB6

The following thread is shared by a colleague who has spent some hard time to find out what he was looking after. His issue was that all the other links he reached were holding misleading titles, so he asked me to share this one with the above title.  

Thanks Dinos and the thread contributors for your community input!

Please advise or Please advice

I am pretty sure that this is already clear for native English speakers, and any English beginner learner that:
Advice (Noun) - Advise (Verb)

So the correct form should be: Please advise.

However, this time what is confusing me is MS Outlook! It do not like both!!!

Microsoft Outlook 2013 (15.0.4615.1000) 32-bit

Wednesday, 2 July 2014

Seasons for the year

During meetings discusing projects, it happens that when we start scheduling the tasks, a meeting member proposes switch a task from the next month August into autumn...! But at which month does autumn starts?!

When I searched I found that for the northern hemisphere, the seasons of the year are:

Winter:   December, January, February 

Spring:    March, April, May

Summer: June, July, August

Autumn:  September, October, Novemebr

Wednesday, 18 June 2014

Editing Master Slide in Microsoft PowerPoint Presentation

To edit the master page:
Surprisingly enough, you can do that not from the Design or the SlideShhow menu, but from the View menu

View --> Master Views --> Slide Master

Tuesday, 10 June 2014

I, me and myself. Which one to use?!

Most of us might have faced this confusion at least once during preparing a very formal business communication. Hence, the anxiety of committing a grammatically incorrect choice!

The key is: 
    1) Remove the  accompanying subject and object.
    2) Make the decision.
    3) Restore the omitted word(s).

Examples: Select either: I, me or myself

Ali and (??) prepare the document.
Please send the document to Ali and (??).
I will bring the required documentation for Ali and (??).


Ali and (??) prepare the document.
Step 1\2: I prepare the document.
Step 3: Ali and I prepare the document.

Please send the document to Ali and (??).
Step 1\2: Please send the document to me.
Step 3: Please send the document to Ali and me.

I will bring the required documentation for Ali and (??).
Step 1\2: I will bring the required documentation for myself.
Step 3: I will bring the required documentation for Ali and myself.

Myself is used for an action done by the speaker and involves the speaker .

Detailed description about the process (Thanks Jennifer Walker):

Saturday, 7 June 2014

My new term: Service Delivery Lead

With my new voluntary term as a Service Delivery Lead for PMI (Project Management Institute) INPD (Innovation and New Product Development) CoP (Community of Practice), I am feeling proud to have this invitation on my blog to visit this CoP website for valuable resources for this area of project management:

My special account goes for trying one of our webinars.

PMI account is required to attend PMI webinars

Tuesday, 13 May 2014

Overlapping content following the Microsoft Report Viewer control

The trick to avoid this behavior is to use the parameter: SizeToReportContent, such that:

<rsweb:ReportViewer ID="ReportViewer_Main" runat="server" Height="1250px" Width="700px" SizeToReportContent="True">


Monday, 12 May 2014

Calling MS SQL Server user defined functions with default parameters

User Defined Function Call:

FROM udf_TestDef(1, DEFAULT)

Yes!! You have to insert the term default literary!

User Defined Function Sample:

CREATE FUNCTION [dbo].[udf_TestDef]
@IsBigContainerPhoto BIT = 0

Sunday, 27 April 2014

Excel 2013: Removing a defined named range\data table

For normally defined name:
1) Formulas menu.
2) Name Manager.
3) Select the range and delete.

In my case that was a result of a query which generated the named data table:
1) Select the range from the drop down list beside the formula bar.
2) Right click on any cell within that range, and select:
Table --> Convert to Range

The reason I wanted to get rid of that named table in the first place was that filtering and sorting the data inside it was separated from the main sheet.

Tip: Creating Apple ID without entering credit card information

1) Start from the App Store from your device.
2) Try to install a free application.
3) When prompted to enter your Apple ID, select the option for creating a new account.
4) Fill in your information. Moreover, you will find an option for the payment which is "None"
This option is unavailable when you try to create your Apple ID the regular way through the website.

The following are the detailed instructions from Apple knowledge base:

Thursday, 27 March 2014

Default value for SQLServerDatasource string parameter must contain a default value to be passed as empty string!

- FormView in edit mode with SQLServerDatasource update statement set to a stored procedure which contains a string, nvarchar(max), parameter.
- Within the aspx file, the default parameter value = ""
- Parameter is data binded to an empty TextBox.
- FormView is submitted for update.

- Stored procedures string parameters when defaulted as empty strings, they are not passed to the stored procedure, rather than passed as empty strings.

Workaround# 1:
- Insert a space with the parameter default value in the aspx file such that:
default = " " rather than default = " ".

Workaround# 2:
- Handling the event SQLServerDataSource.Updating, so that to manually add a space within the parameter value when the TextBox.Text value is empty.

- Visual Studio 2013, version 12.0.30110.00 Update 1
- .NET Framework 4.0

Wednesday, 26 February 2014

Determine user membership in active directory domain groups

C:>NET USER  /DOMAIN <username>
The request will be processed at a domain controller for domain <domain name>.

User name                    <username>
Full Name                    <FillName>
User's comment
Country code                 000 (System Default)
Account active               Yes
Account expires              Never

Password last set            09/02/2014 12:01:44 PM
Password expires             Never
Password changeable          09/02/2014 12:01:44 PM
Password required            Yes
User may change password     No

Workstations allowed         All
Logon script
User profile
Home directory
Last logon                   Never

Logon hours allowed          All

Local Group Memberships
Global Group memberships     *Domain Users         *Domain_2
The command completed successfully.

Wednesday, 19 February 2014

The database principal owns a database role and cannot be dropped.

SQL Command:

Error Message:
The database principal owns a database role and cannot be dropped.

SELECT T2.Name, T1.Name
FROM sys.database_principals AS T1 JOIN sys.database_principals AS T2 ON T1.owning_principal_id = T2.principal_id
 WHERE T1.type = 'R' AND = 'USER_NAME'

Database roles from which to remove this user before re-trying the deletion.

Sunday, 16 February 2014

Replace your iTunes media Library by an existing media library

1) Change iTunes library:
Hold down Shift while clicking on the iTunes shortcut.

Choose Libarary... to point to your original library

2) Import existing library folders:
File menu is not enabled by default, to enable it press Alt + F

File --> Add Folder to Library... (Select your original library folder)

-- iTunes (Windows)

Monday, 10 February 2014

SharePoint: Calculating duration in days

Create a new calculated column with the formula:

=IF(OR(ISBLANK([Start Date]), ISBLANK([End Date])),"",DATEDIF([Start Date],[End Date],"d"))

The outcome will be the number of days difference for [End Date] -[Start Date]

Thursday, 6 February 2014

Warning: Unable to update auto-refresh reference...

e.g.Unable to update auto-refresh reference 'ajaxcontroltoolkit.dll'.

I deleted the .refresh file for the problematic dlls; that solved it!

Wednesday, 22 January 2014

Wednesday, 15 January 2014

Enabling Microsoft IIS logging feature

1) Notice the Site ID, since this will guide you later to the correct logs file for your site, in case multiple sites are hosted under the same IIS instance.

2) Open "Logging" from the "Featues View".

3) Notice the target logs location when the logs are stored, and make any required changes to the log content.

4) Sample log file should look like:

5) Lookup the status code against the below MSDN list of HHTP status codes:

Snapshots from IIS version 7.5.7600 under Windows 7 Professional.

Monday, 6 January 2014

Sunday, 5 January 2014

Can not start debugging for ASP.NET 1.1 Visual Studio projects

Whenever I start debugging on my project, it starts and ends immediately after launching the web browser; however, all the breakpoints are ignored!

Those two steps solved my issue:
1) Strange enough, I unchecked the option for turning on pop up blocker in IE.
2) Makes more sense, I fixed ASP.NET 1.1: through:

C:\Windows\\Framework\v1.1.4322\aspnet_regiis -ir

Thursday, 2 January 2014

Creative Sound Blaster Live 5.1 driver for Windows 7 & Windows 8.1 x64

The answer is
KX Project Saved my card from the trash:

This file worked for me 64 bit for both Windows 7 and Windows 8.1:

Settings are as follow on Windows 8.1:

The below was an annoying message on every restart:

Disabling kX mixer from the startup application (from Task Manager) solved it; however, the audio continued to function without any issue:

This one did not work for me:
Creative Sound Blaster Live! 24-Bit Internal Driver 1.01.0090 Beta for Windows 8
And no other file worked for me from Creative Official Website!!
Creative Worldwide Support