Friday, December 10, 2010

Fix for Drop-down Menus Hidden Behind Flash

Recently, for the second time in my career, I was confronted with the problem of drop-down menus hiding behind a Flash element of a web page. Just Google "drop-down menus hidden behind Flash", and you'll discover that this is a widespread problem. Requests from developers begging for solutions abound throughout the web. But the standard suggestions to increase the z-index of the navigation div, or to specify the wmode value as "transparent" in the Flash object and/or embed tag, do not always work.

Here's what does! Use CSS to dictate the placement of the navigation div and the Flash div. Then, in the code view of your software, drag the code of the Flash div above the code of the navigation div. Because browsers load pages from top to bottom, this trick will cause browsers to load the flash first, and the navigation second. But your CSS styles will force the placement of the elements properly on the rendered web page with the navigation positioned above the Flash.

Thursday, November 18, 2010

Social Computing in a Business Environment

I have presented on Social Computing in a Business Environment a couple times at SharePoint Saturdays. During the presentations, I find that the biggest challenge in organizations is not the fact that the technology can’t support it, but how the business executives support it (or fight it). So, I thought it was time to bring it to the forefront.

What is Social Computing?

The dictionary states “Social Computing is a general term for an area of computer science that is concerned with the intersection of social behavior and computations systems”. For those of us that don’t speak dictionary, social computing is using computers to perform normally social conversations. Basically, it is computerizing the water cooler, suggestion box, vendor lunches, user groups, customer forums, and the news. Some social computing examples include Facebook, Twitter, LinkedIn, GovLoop, MySpace, FourSquare, AdultFriendFinder, Match.com, and many other WebsitesThatMashNamesTogether.

After mentioning AdultFriendFinder I often hear the room make a hushed “huh?” sound. Right, AdultFriendFinder, Match.com, eHarmony and Yahoo Personals are all social networks and when businesses are approaching policies and decisions with social computing, this has to be taken into account.

It is not just the website though; you also need to concern yourself with the media. With mobility becoming not only another means to market your website, but to connect to other sites using mobile applications, a company needs to keep this small fact into account… 90% of the population of the United States owns a mobile phone. According to Wikipedia (the master source of all statistical information sarcasm) 285 Million mobile phones were in use in the United States in December 2009. Nearly all of those phones have the ability to either text, surf the web, and/or receive email. Social Computing is another piece of this puzzle…the forgotten piece. By using the smartphone, a user can instantaneously publish news as it happens to the web. You could be taking video of a car crash involving the CTO of your company one minute and the next minute the stock of your company has tanked due to uncertainty of the CTO’s condition.

On the other hand, an employee may use the suggestion box for an idea that makes millions of dollars in revenue by making a simple change in one process.

What are the Advantages?

Of course there is the logical choice of free marketing. Does it really make a difference though? Gartner thinks so. In the November 2009 paper “The Business Impact of Social Computing: Real-World Results for Customer Engagement” they highlight three cases where social media increased customer engagement and product or service utilization. Keeping in mind the rule of threes, it makes sense to use more than one way to communicate and retain current and potential customers.

Customers are looking for the experts. Providing expert advice through customer communications provides your customers with the proper guidance while making you the expert if that field. On the other hand, receiving expert advice through social computing is also a huge advantage. If you have an issue with your car, you have a choice of asking your techno-wizard friend who also repairs his own car, or you can post a query on 2carpros.com and have a certified technician guide you in the right direction.

Market research and discussing the market trends help business better understand the target audience as well as see where the competition is heading. Competitor’s information can make or break winning business. An example of this is the transition of Chevy Chase Bank to Capital One Bank. During the “big change”, Capital One converted over the website normally used to a completely new site. This directly affects any supporting applications such as Mint.com which you may use for money management. They also changed how the secondary security worked but change it from a PIN to letter authentication to a “what is the name of your mother’s child’s dog’s name when you were 2 years old”? By using and watching social media to receive customer intel, Capital One tried to alleviate many of the customer’s angst, but when all was said and done, the issues still existed.

In response and by watching social media, M&T Bank began marketing heavily using the weaknesses of the Capital One transition as part of the marketing tool.

The customer can affect not only your existing and future business, but they can also change the direction of the company. One case in point is a company called SWSoft. SWSoft started as a small software development company that created control panel software for application and server hosting providers. The company made small technological changes to adjust for the constantly changing need of hosting providers. However, a customer suggested virtualization software for the Mac, SWSoft took the charge and ran with it. Within days, the software was created and presented to Apple for approval. Since then, SWSoft changed the company name to reflect the extreme success of the Parallels software.

Recruiting has always used social computing to a point. But with the addition of LinkedIn and Spoke, recruiting has also taken on a new look. Anymore, the operative way to find people is by performing LinkedIn searches for the right person in the right location. But new constrictions for recruiting include requirements to have at least 3 recommendations in their profile. Sales people are often required to have 500+ connections before being considered for hire.

There are more advantages to using social networking, but the real question comes down to whether or not it is worth it. It really depends on your approach and your product or service being promoted.

What are the Pitfalls?

Much in the same way you wouldn’t want your second cousin to put words in your mouth, companies are extremely wary of having individuals make improper corporate statements. This can place the company at risk for a law suit. But sometimes a law suit is the easy way out. Companies have died from statements to the press and within the community. It is the most complicated aspect of the business world…the separation of personal and business life.

Pitfall #1: Incorrect “Expert” Information. “We just closed a deal with Wal-Mart” can be a deadly statement even if it is true. If the contract has not been signed and someone makes this statement is problem number one. Even if the contract is signed, Wal-Mart may have a clause in the contract stating you cannot make such an announcement. Add to this the fact that by making such a statement you could artificially push your stock price up would be a SEC issue. Once you pushed the stock price up and the real announcement was about to be released that the “Wal-Mart deal” was for the light bulbs in a section of a single Wal-Mart store, there is a sudden whoosh sound as the men with uniforms take you off in an orange jumpsuit to match the one Martha Stewart had.

Pitfall #2: Political Views. If you are often representing the company as the expert in SharePoint uses for business and you decide to write a blog entry about how you support the Libertarian party and the candidate running for office in your home town, you have a strong chance of alienating the Democrats, Republicans, and Green party people that regularly track your movements and listen to you advice in business. There are 3 things that should never be discussed in a business environment (unless that is your business): Politics, Religion, and Sex.

Pitfall #3: Religious Views. Even stating you are agnostic can be deadly for business. Making statements about religion, or even commenting on what is happening globally can be perceived as an insult. Lastly, and this one is most often missed, by just using the word “bless” you are inferring a religious context.

Pitfall #4: Global Commentary. In the late 1993, I went to the hardware store to pick up some supplies and in the middle of the store, an man was discussing the deaths of the Navaho people due to what he believed was the “filth the savages were living in” and that he if they can’t manage to bathe, then that is what happens. I am Native American and took this as an attack directly. I promptly walked up to him and asked to see the store manager. After being escorted (by him) to the office I promptly launched into a dissertation on how ignorant he was about the Hantavirus and how his loudly expressed opinion on the “filth the savages were living in” is the one reason I will never shop in the store again. I then addressed the manager and informed him that the customer service runs in tens. “I will promptly walk out of here and tell at least 20 people about my experience which will likely disseminate to 10 others. I am but one person that has brought this to your attention. For every one person that complains, there are ten that do not. So let’s count this up real fast. If nine other people have not complained and they told their story which went to 30 people each, you have the strong potential of losing 310 customers.” One year later, the hardware store was closed.

Pitfall #5: “Indecent” Postings. Indecent is a word that scholars have been arguing for decades. The perception of that is different for each person. Having booth babes at the Electronics show in Las Vegas is likely to have two effects: Bring all of the geeky males over to have a chance to talk to the hot female and at the same time sell the goods they don’t necessarily need, and insult some of the women’s sensibilities. However, if a shirtless Alex O’Loughlin was standing there handing out literature on the G-15,000 ultimate gaming wizard wand with see-through electronics, there is a good chance that the women would not have a problem with it and female usage would skyrocket. To be fair, some companies are marketing with indecency and making it work. One company that has managed to pull it off is Go Daddy and the Go Daddy ads. The fact that they are proud that some of their ads cannot be aired during the Super Bowl is the appeal of the company promotion. But they tend to be the exception and not the rule.

Indecent extends beyond the statements though. If a company employee is constantly surfing AdultFriendFinder.com, this can be construed as sexual harassment for any coworkers that catch a glimpse of the screen. Additionally, if a person is in the comfort of their home and come across a coworker or a customer on a similar site, it can also create a challenge in the work place. Therefore, you really need to protect the company and define as clearly as possible how social media is handled inside and outside of the work place.

How does a company protect itself?

A company can’t really. All a company can do is create incentives to protect itself while at the same time promote itself. It is a delicate balance that cannot be easily audited and has few legal statues to support it.

To start it all off, you need to start with adding a Social Media policy to your employee handbook. If you already have a social media policy, you need to make sure everyone is trained on the policy. After asking many people if they have a policy the response is most likely a “no”. For the purposes of this paper, I have narrowed down three of the policies I have had the pleasure to shred. The first one is a strict policy that basically eliminates the use of social media.
Policy #1
It is against company policy to use any type of blog or social network for business communications.


It is against the policy to discuss anything dealing with your job to include:
• Co-workers
• Likes and dislikes of the job
• Anything products, services or customers that the company supports
• Any of the company locations


All employees are required to allow for company auditing of all social media accounts. Employees are required to disclose the user ID and social media site to human resources. Employees are required to accept all invitations and connections to their social media site from the company account.


Violations of this policy are subject to disciplinary action to include the possibility of employment termination.


As extreme as this policy may sound, it is not out of the ordinary for the 5-7% of the companies that are completely against social media. On the other hand 29% of the companies that do not believe they need a social media policy and have documented the reasoning behind it. Michael Hyatt, Chairman and Chief Executive Officer of Thomas Nelson Publishers states:

Your company doesn’t need a social media policy and here are five reasons why:


1. Your people can be trusted. In my experience as a leader, people pretty much do what you expect. If you expect them to be honest and trustworthy, they will be honest and trustworthy. No, I am not hopelessly naive: I know some people misbehave. But why punish the many because of the few? Deal with the exceptions as they occur. Most people will do the right thing if given the chance.


2. Social media are just one more way to communicate. I honestly don’t understand all the fuss about social media. It’s just one more way to communicate. Do you have a “phone policy”? an “email policy”? a “fax policy”? Technology is neither good nor bad. It’s what people do with it that is the issue. And honestly, I don’t care if people are updating their Facebook status “on company time.” (Is there really such a thing any more?) Instead, I prefer to focus on the results the employee delivers and let them manage their time.


3. More rules only make your company more bureaucratic. Before the election, someone asked me what my political affiliation was. I laughed and said, “I’m a Libertarian, but only because I don’t have the guts to be an anarchist.” I don’t think you can legislate morality. (That’s not to say that legislation can’t be immoral, but I digress.) You can’t come up with enough rules to guarantee that people will do the right thing. Too many rules only make your organization slower and less likely to embrace the change it needs to survive.


4. Formal policies only discourage people from participating. In my opinion, you want to encourage your people to engage in social media. Doing so puts a human face on your brand. It meets customers where they are congregating. It makes everyone an ambassador for your organization. But formal policies discourage this. They make people hesitant. No employee wants to get in trouble, so they just avoid the very thing you want (or should want) to encourage.


5. You probably already have policies that govern inappropriate behavior. This is the real kicker. You likely already have an employee handbook in place that speaks to what is appropriate and what is inappropriate. At Thomas Nelson, for example, our handbook provides various examples of “Personal Conduct Violations.” We specifically forbid:
o Insensitivity to customers
o Spreading false statements about other employees or the company
o Profanity
o Abusive language about a supervisor or co-worker
o Unauthorized release of confidential information
o Disruptive or inappropriate behavior
o Discriminating or harassing behavior towards a co-worker
o Indecent or immoral behavior


Although Michael has some valid points, it follows down the same line as cell phone usage while driving. There is already a law for inattentive driving, but to make sure it is in the forefront of everyone’s mind, laws are redefined to eliminate the ambiguity and ensure there is a clear understanding of expectations.

To come up with the middle road, it is really best for the company to determine what the priorities are. The following is a sample of a policy found on About.com (a social media site).


Policy #2


Why This Policy is Necessary


Zipline International understands that many of our employees enjoy sharing their knowledge and enthusiasm for our industry online and we encourage these activities. We also encourage employees to expand their knowledge and understanding of our industry by interacting with their colleagues online and in traditional meeting environments.


At the same time, management is responsible to protect the privacy, security and image of our company, customers and stakeholders. This policy is intended to foster an open and expressive environment while at the same time maintaining corporate security.


Private Use of Social Media, Websites and Blogs by Employees


Employees that are tasked with maintaining blogs and websites, or establishing a social media presence on behalf of the company, are guided by a separate policy addressing these responsibilities. Unless you are specifically asked to do so, you are not authorized to speak on behalf of the company. When sharing information about our industry or your area of expertise, please make it clear that your are offering your own opinions.


Non-disclosure of Confidential Information


Never reveal information that is covered by the non-disclosure agreement that you signed before coming to work at Zipline. In addition, never disclose information that has not already been made public by the company. This includes, but is not limited to, new product announcements, financial data and staffing changes. Do not use company logos or trademarks without permission.


Maintaining Positive Communications


At all times, be respectful of our company as well as its employees, customers, vendors and competitors. Remember that you are ultimately responsible for your online behavior and should avoid content or actions that are defamatory, pornographic, proprietary, harassing, libelous or threatening. You can be sued by employees, competitors or any other individuals affected by such content.


Protecting Physical and Information Security


Do not share specifics of the company's Security or Information Technology practices. In addition, never share specific information regarding the layout of our physical plant. Such details can be abused by unethical individuals to breach company security.

Policies will only take you so far when it comes to protecting the company. Having other measures in place such as network monitoring and web control device, and system policy objects can help a company limit the access to “acceptable” social media. Having access to AdultFriendFinder may not be against your social media policy. It may be against a computer use policy. Having people on Facebook all day may not be against either a social media policy OR a computer use policy…but it isn’t necessarily productive. Having web control devices helps control access time and web site access to social media sites.

What are Easy Ways to Promote Social Computing?

I am going to start with what I know best…SharePoint. SharePoint is a portal capable of not only collaboration and document sharing, but it also takes social computing to the next level. SharePoint 2010 specifically includes a feature called My Site which allows for individual customization of how information is displayed. For example, through My Content, I am able to display document libraries most important to me from my business portal, and have my Twitter and Blog feed into the page as well.


With newsfeeds, I am able to have the RSS feeds from the site I monitor that directly affect me such as Microsoft SharePoint blog, and I am able to track my tagged features in my business portal.

Tagging and Notes are an additional feature in SharePoint 2010 that allow for people to tag content in accordance with the relevance they feel it deserves. It is much like a peer review of the value of the document.

Blogs are built into SharePoint as a template and are easy to deploy. Discussion boards and suggestion boxes are web part components that are added to any page within the SharePoint environment.

As an added bonus, the auditing feature allows for you to control where you social networks are connecting through. By adding web parts for social media such as the Facebook Kit for SharePoint, the SharePoint to LinkedIn Connector, or the TwitterPublicTimeline web part, companies are able to limit access to a single location instead of the entire corporate network. Auditing ensures you can track how often pages are being hit.

SharePoint Saturday Richmond

Here comes another SharePoint Saturday!

SharePoint Saturday is one of the best community building and learning environments out there. I say this not only because I try to be a part of it, but because the presenters really want to help people understand and learn the technology. Of course, you could go out there and pay between $900 and $3000 for a 2 day - 5 day conference and training session, but those same speakers are very likely going to be giving their time and money to present at SharePoint Saturday as well.

For example, one of the best presenters out there is Dux Raymond Sy. He is a prolifent speaker and is often presenting at the other conferences such as SharePoint Symposium, Best Practices Conference and more. He will gladly hop on a plane and travel to San Ramon, California or Kansas City, Missouri to present for free at a SharePoint Saturday.

But who pays for the SharePoint Saturday to take place? The vendors...and they don't pay a whole lot since it is mostly the cost of the venue, swag, food, and door prizes. How popular is it? Extremely! Besides being a free conference, the attendees get lunch and swag. Add to that the networking opportunities and it is priceless. THIS is why we do it. Often there is a wait list for these events. The only one so far that I have seen that waded through the wait list was SharePoint Saturday DC which had 921 attendees and was held at Northern Virginia Community College in Annandale, Virginia.

This is such as valuable group that we suggest it to our customers continuously. So, SharePoint Saturday Richmond, Virginia is December 4. If you are closer to South Florida though, I suggest SharePoint Saturday South Florida instead on December 4. More details about SharePoint Saturday are available at http://www.sharepointsaturday.org/

Last plug: I will be presenting on one of my favorites: Disaster Recovery and SharePoint 2010, Are You Ready? Come by and say Hi!

Wednesday, October 20, 2010

Other methods to get the Content Type ID

Following the last post where I discussed the different methods of getting the GUID for list and ID of content types, there are other ways to get the content type ID.
If you have SharePoint Designer, you can navigate to the content type section, and then select any content type. The content type page will contain the Hex format of the ID for that content type. Unfortunately, using this method will not provide the GUID for the fields used in this content type.
Another way to get the ID for a content type, is to navigate to the features folder on the server
(drive://Program Files /Common Files/Microsoft Shared/Web Server Extensions/ 14/Templates/Features/ (select the list or content type folder)
When you open the schema.xml file you will be able to get the GUID for the content type as well as every field used in this content type.
For example this is the GUID for the event content type
As you have seen above, there are two formats to define the ID of a content type, the Hex code and the GUID.
To define a new content type, you must inherit form an existing content type which enables you to inherit all columns, workflows any information policy attached to the parent content type. The new Hex ID for the new content type will be composed of the Parent Content Type ID + 2 Digit Hex Value. If you are using the Guide format, as recommended by Microsoft as best practice, the GUID will be composed of the Parent Content Type ID + 00 + GUID (without any special characters) for example, a content type that inherits from the event content type will have GUID
01x0102DE7CA8F1-A8B0-490F-913D-F0F60638A18F
Where the 01x102 is the event ID (the parent) then a GUID {DE7CA8F1-A8B0-490F-913D-F0F60638A18F} with the {} removed.

Getting the GUID or internal field names of items in SharePoint

Many times during developing a SharePoint solution, we need to get the GUID of a list item, content type or a field but SharePoint does not display these GUIDs in an obvious way. In this post, I will discuss two ways that you can use to get the GUID of these items to be used during development.
One way to get the GUID is simply to navigate to the list settings page, copy the url, it will look like this:
http://YourServerName.com/_layouts/listedit.aspx?List=%7BEEF4F8B7%2D27D4%2D4A81%2D9E51%2D6A588EEF8D94%7D

The string after the List= is the encoded GUID i.e.
%7BEEF4F8B7%2D27D4%2D4A81%2D9E51%2D6A588EEF8D94%7D is the encoded GUID. Now you need to decode the GUID using one of these online tools (There are many resources online for encoding and decoding URLs that can do the same trick as well)

http://urldecoderonline.com/ (The is the best tool because you can copy the entire URL and it will break the URL to its complements which provides you with the list item very easily)
the decoded URL will look like this:
http://YourServerName.com/_layouts/listedit.aspx?List={EEF4F8B7-27D4-4A81-9E51-6A588EEF8D94}
so the list GUID is {EEF4F8B7-27D4-4A81-9E51-6A588EEF8D94}
To get the ID of a content type, navigate to the content type in the site content type gallery copy the string after the ctype of the URL and decode it, again, using one of the above tools. For example,
http://YourServerName/_layouts/ManageContentType.aspx?ctype=0x0107&Source=http%3A%2F%2FYOURSERVERNAME%5Flayouts%2Fmngctype%2Easpx
Encoded Content Type ID  0x0107
Decoded   Content Type ID  258
You can also apply the same technique to get the internal names of fields by using the string after the Field=
http://YourServerName.com/_layouts/fldedit.aspx?field=WorkPhone&Source=%2F%5Flayouts%2Fmngfield%2Easpx%3FFilter%3DAll%2520Groups

Tuesday, October 19, 2010

Retrieve the Passphrase in SharePoint 2010

Contributor: Hossam Behery
Adding another server to a SharePoint farm is an easy task if you have the Passphrase that were used to create the farm initially. This “Passphrase” is needed to be able to add a new server to the farm. I have not seen any way to retrieve the passphrase if you forget it, this is where PowerShell can help you rest the Passphrase.


Just make sure that:

1. The account that you are using has the right privileges Securityadmin server role access on the SQL instance and the db_owner role in a database.

2. Administrative permission on the local computer.

• From your Start menu select “SharePoint 2010 Management Shell” or Start, “Microsoft SharePoint 2010 Products”, “SharePoint 2010 Management Shell” then click run as administrator to cover the second requirement above.

• Type the following command:

$passphrase = ConvertTo-SecureString -asPlainText -Force

This line will prompt you for a password and then stores the secure version of your password in the $passphrase variable.

Use the string that you want to use as your passphrase; I used “changePassPhrase” as an example as shown above.

Now type the following command:

Set-SPPassPhrase -PassPhrase $passphrase -Confirm

Then you need to confirm the passphrase and then ask you if you are sure that you want to change the passphrase to the password you typed.

After that, you can join your new server to the farm using the passphrase that you just updated.

Create a Development SharePoint 2010 Environment on Windows 7 Part 2

Contributor: Hossam Behery
Creating a development environment for SharePoint 2010 is much easier now with two options, you can deploy SharePoint foundation on Windows 7 or deploy your environment on a virtual machine. In any case, these steps will guide you through the process:

• First you will need a x64 laptop or (desktop) with at least 2 GB RAM (I suggest 4 considering that you will be running Visual Studio as well)

• The process is not that complicated but it must be done in the exact sequence otherwise you will get errors in different steps during the installation.

• Here are the steps in order:

• Follow the steps in my pervious post.

• You will need to download the SharePoint.exe file for Microsoft SharePoint Foundation (WSS 4).

• We will need to change a line in the install configuration file so we start by extracting the SharePoint.exe file using the command prompt as follows:

• Go to the search box in windows and type command prompt

• Right-mouse the command prompt link and click the Run as an administrator.

In order to extract the installation files to C:\SharePoint FoundationExtract – You can name the extract folder anything you like but I used this name as an example. Type the following command in the command prompt window:

SharePointFoundation.exe /extract:c:\SharePointextract

Now all the installation files are extracted in the C:\SharePoint extract folder on your hard desk.

CAUTION: Do not use winzip or winrar (or any other software extraction tool) because they usually break the folder structure and this may cause errors while installation. Trust me, it puzzled me initially and I lost some time getting an error, stating that I do not have the right language on my system, until I figured out that the installation file can’t find language setting for the WSS.

• Find the config.xml file at:

\SharePointextract\files\setup

based on the command line I used, I should find the file in:

c:\SharePointextract\files\setup\config.xml

• We need to edit the configuration file to allow for client install because out of the box, SharePoint can only install on windows Server OS.

Add the following line at the end of the file before the tag:

Save the file as config.xml in the same location.

CAUTION: Make sure the capitalization is correct!

• The modified file should look like this:

Follow the following link to install and configure IIS on windows 7.

1-Install the following additional prerequisites:

Microsoft FilterPack 2.0. At a command prompt, type the following:

c:\ SharePointextract \PrerequisiteInstallerFiles\sync\Synchronization.msi

(where c:\ SharePoint extract is the location where you extracted your SharePoint.exe)

2- Download and install the Microsoft Sync Framework 2.0 Redistributable Package.

Make sure that you select the right set of files that corresponds to your machine.

3- Download and install the Windows Identity Foundation


4- Install the SharePoint Foundation by running the command:

c:\ SharePointextract \setup.exe

(Again, where c:\ SharePoint extract is the location where you extracted your SharePoint.exe)

I will detail the installation process in the next blog.