Brijesh's Blog

August 15, 2008

“The page cannot be found” error, when you click “Reply” in Subject view of Discussion Board in SharePoint 2007.

Filed under: Uncategorized — brij28 @ 6:47 pm
Here is the scenario:

Subject view of Discussion Board in SharePoint 2007 does not have “Reply” column available in default view settings. Here is the example of a new Discussion Board created for one of the SharePoint sites,

Let’s add “Reply” column by going to Discussion Board settings.

This will make “Reply” column visible with “Reply” button for each topic in Discussion Board.

Now, when you click on “Reply” button to reply to any of the topics, you will receive an "HTTP 400" error message – “The page cannot be found” error.

The only way to reply to a topic is by clicking on a topic under the “Subject” column and then hit the “Reply” button.

Yes, somebody can reply to a topic this way.

Here is the KB Article from Microsoft to show you the work around on how to reply a topic in Discussion Board,

KB Title: Error message when you click Reply in a Windows SharePoint Services 3.0 discussion board in Subject view: "The page cannot be found"

http://support.microsoft.com/kb/936859

Looks like, this issue has been addressed in WSS 3.0 Service Pack 1. Here is the Microsoft KB Article,

Note: Unfortunately we haven’t installed Service Pack 1 in our SharePoint (MOSS 2007) environment yet to confirm this.

KB Title: Issues that are fixed in Windows SharePoint Services 3.0 by Windows SharePoint Services 3.0 Service Pack 1

http://support.microsoft.com/kb/942388

When you reply to a discussion in the Subject view of a discussion board, you receive an "HTTP 400" error message

Consider the following scenario. The Subject view of a discussion board contains the Reply column. You click Reply in the Subject view. In this scenario, you receive an "HTTP 400" error message – “The page cannot be found”.

August 7, 2008

How to create dedicated content database for a site collection:

Filed under: Uncategorized — brij28 @ 12:31 pm
Steps to create a new site collection in a new content database:

Let’s assume that I want to create a new dedicated content database for a new site collection. This site collection will have huge contents and it may require database of size 60-80 GB. Also we do not want any of the content databases to grow more than 100 GB (Microsoft recommended content database size). So we decided to create a new dedicated content database for this site collection. Any new site collection after this must be created in a content database with a least number of sites in it, provided it is not crossing the limit of maximum allowed sites in that content database. 

As usual, I have taken few screen captures for better understanding of this scenario.

We have total 8 content databases for our MOSS 2007 deployment. I have created a new content database with the name “New_Content_DB”.

I want to create a new site collection in this new content database – “New_Content_DB” and then lock it. So that any new site collection after this will be created in a content database (any one from SPS01 to SPS08) with least number of sites in it. Let’s create a new site collection,

New site collection – “sites/newsc” was created in “New_Content_DB” as expected. Now, I would like to lock it so this content database will be used only for this site collection – “sites/newsc”.

I ran following query to confirm that the site collection – “sites/newsc” was created in “New_Content_DB” database.

Now, let’s lock it. I have set “Site Level Warning” to 0 and “Maximum Number of Sites” to 1 for this. Here is the screen capture,

Any new site collection after this must be created in content database with least number of sites in it. In our case it is SPS07. So let’s create a second site collection and it must be created in SPS07 instead of New_Content_DB. Here is the screen capture,

As shown below, the second site collection – “sites/newsc2” was created in SPS07 database.

One more time, SQL query to confirm that second site collection – “sites/newsc2” was created in SPS07 database.

Any new site collection after this point will be created in SPS07 and then SPS08 and so on…Here is the screen capture after creating couple of other site collections – “sites/newsc3”, “sites/newsc4” etc.

As per Microsoft recommendation SharePoint content database should not grow more than 100 GB in size. So you may want to move site collections with maximum contents or fastest growth from one content database to another (the smallest content database in your SharePoint farm or a new content database). Here are the few support links which can help you achieving this.

For SharePoint 2007:

First Release of the Microsoft SharePoint Administration Toolkit:
http://blogs.msdn.com/sharepoint/archive/2008/04/30/announcing-the-first-release-of-the-microsoft-sharepoint-administration-toolkit.aspx

Mergecontentdbs: Stsadm operation:
http://technet.microsoft.com/en-us/library/cc288557.aspx

One of the best posts for moving site collections to another content database:
http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?List=56f96349-3bb6-4087-94f4-7f95ff4ca81f&ID=53

For SharePoint 2003:

MS IT Database Split for WSS2.0 and SPS2003:
http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=governance&ReleaseId=5351

August 1, 2008

Audience Targeting Vs. Security

Filed under: Uncategorized — brij28 @ 5:51 pm

Audience Targeting:

MOSS 2007 has a feature that allows you to enable audience targeting (although this is not available in WSS 3.0). Turning on this feature means any items in a list or library can be set to appear only for a particular audience. An audience can be defined as a SharePoint group, distribution list, security group, or a global audience. The advantage of this feature lies in showing a group of users only relevant information, as opposed to overwhelming them with less relevant information. For example, a company may have a list of all new employees, perhaps including some trivia and background information. Audience targeting permits administrators to show a list of only those employees that joined a particular business unit, and only the primary identification information. The disadvantage of audience targeting is that users are not prevented from seeing the entire list, by selecting a different view or URL hacking, unless item-level security is applied.

Item-Level Security:

This feature enables users to set specific security on each item in a list or library. This means that, as items are added to the library, the user can indicate who can view the item. When setting the security for a single item, SharePoint allows the user to give access to an individual or group within AD and/or SharePoint. Item-level security is useful when uploading specific documents that only certain users should be able to see and completely prevent others from accessing them. For example, an internal portal for a company could display employee benefits only to that specific employee. Item-level security could allow only those users to see those documents without making the same documents available to the entire company.

The disadvantage of item-level security is the headache it poses for administrators in cases where it is unclear who the intended viewer is. For users of the older SharePoint Portal Server 2003, item-level security is not ideal given that users could see all items in a list, and only discover upon clicking whether they were authorized to view the item. SharePoint 2007 has now updated this feature with security trimming: Users see only the items listed that they are authorized to view, and all other items are filtered, or "trimmed" out.

Reference:
http://www.developer.com/tech/article.php/3722456

July 31, 2008

AD Groups and SharePoint Groups

Filed under: Uncategorized — brij28 @ 6:48 pm

Choosing between AD Groups and SharePoint Groups. What is the best approach for assigning permission levels in SharePoint?

Here are some guidelines:

A general rule of thumb is the less security principals you have, the more scalable your security design will be.  In other words, it is easier to assign permission levels to 1 group than 100 users.

Avoid assigning permission levels directly to user accounts—use either an Active Directory (AD) group or a SharePoint group to contain the users.  If there is a one-to-one mapping between an AD group and a SharePoint permission level, you could assign permissions to the AD Group rather than creating a SharePoint group, but if you always use a SharePoint group, you have a clean way to add more users/groups later if you need to.

Use SharePoint groups over AD security groups.   You can delegate control of SharePoint groups to site administrators.  If you use AD groups, there could be a bottleneck getting users added/removed from them since only a select few in the organization have permissions.  Another issue with AD groups is you cannot view the members in SharePoint, making it difficult to determine who has access to what.

Difference between SharePoint Groups and AD Groups:

Domain Groups

  •       Normally created and maintained by the IT department
  •       Can be used across different SharePoint sites and site collections
  •       Organizations may already have good AD group structures that map well to your SharePoint implementation
  •       Groups can be nested – e.g. you can add another AD Group as a member to an existing AD group
  •       No features for users to submit a request to join a group

SharePoint Groups

  •       The creation of groups can be done by business users
  •       When a group is being created, you can define who "owns" the group
  •       Can allow users to submit a request to join a group
  •       Can determine who has permissions to see the users within groups
  •       Groups are created within a particular Site Collection – cannot be used in other site collections
  •       You cannot add a SharePoint Group as a member of another SharePoint group (no nesting)
  •       SharePoint Groups cannot be used in other systems (e.g. network Shares)
  •       The SharePoint Groups are separate from Active Directory – so you can go wild with the SharePoint Groups without upsetting your AD administrator

References:
http://www.sharepointblogs.com/johnwpowell/default.aspx
http://guru-web.blogspot.com/2007/10/difference-between-sharepoint-and-ad.html

July 30, 2008

Increase size for incoming e-mails in SharePoint

Filed under: Uncategorized — brij28 @ 7:43 pm

Recently we had an issue for receiving emails with larger file attachments in SharePoint. Here is how we fixed this issue.

Note: We have maximum email size set to 10 MB in MS Exchange. So MS Exchange will not allow any emails bigger than 10 MB. Also default setting for maximum email size in SMTP Virtual server is 2 MB.

Steps to modify SMTP Virtual Server properties and increase incoming email size limit to accept bigger emails in SharePoint.

1. Open IIS on SharePoint Server where SMTP Virtual Server is hosted.

2. Right click on Default SMTP Virtual Server and select properties.

3. Click on "Messages" tab of Default SMTP Virtual Server Properties.

4. Change "Limit message size to(KB)": 10240

5. Change "Limit session size to(KB)": 51200

6. Click "Apply" and then "OK" button at the bottom.

– We can NOT increase this limit more than 10 MB (10240 KB) because this is the maximum email size allowed in MS Exchange.

– You will not be able to receive emails bigger than 10 MB even by setting this limit to 20 MB or more. (Provided you have maximum email size set to 10 MB in MS Exchange Server of your company).

SQL queries for analyzing SharePoint farms

Filed under: Uncategorized — brij28 @ 7:04 pm

=====================================================
Query to get total number of items in each list of SharePoint farm:
=====================================================

Use SP_DB01

select

case when webs.fullurl = ”

then ‘Portal Site’

else webs.fullurl

end as [Site Relative Url], webs.Title As [Site Title],

case tp_servertemplate

when 104 then ‘Announcement’

when 105 then ‘Contacts’

When 108 then ‘Discussion Boards’

when 101 then ‘Docuemnt Library’

when 106 then ‘Events’

when 100 then ‘Generic List’

when 1100 then ‘Issue List’

when 103 then ‘Links List’

when 109 then ‘Image Library’

when 115 then ‘InfoPath Form Library’

when 102 then ‘Survey’

when 107 then ‘Task List’

else ‘Other’ end as Type, tp_title ‘Title’, tp_description As Description, tp_itemcount As [Total Item]

from lists inner join webs ON lists.tp_webid = webs.Id

Where tp_servertemplate IN (104,105,108,101, 106,100,1100,103,109,115,102,107,120)

order by tp_itemcount desc

Note: Repeat above query for each SharePoint content database.

==========================
Query to find all site collections:
==========================

Use SP_DB01

Select SiteId, FullUrl, Title, Author, TimeCreated
From Webs
Where ParentWebId IS NULL

Note: Repeat above query for each SharePoint content database.

=======================================================================================
Query to get Site Collection Statistics – Created, Owner, Contents size, Bandwidth usage, Last Modified etc.
=======================================================================================

Use SP_DB01

select distinct a.fullurl as [SiteUrl], a.TimeCreated as Created,

b.tp_login as [SiteAdmin],

sum(cast(c.size as decimal))/1024/1024 as [recyclebin],

cast(d.bwused as decimal)/1024/1024 as [BandwidthUsed],

cast(d.diskused as decimal)/1024/1024 as [SiteSize],

cast(d.diskquota as decimal)/1024/1024 as [SiteMaxQuota],

d.id as [SiteID],(select db_name(dbid) from master..sysprocesses where spid=@@SPID) as [Content_DB],

(select @@servername) as [ServerName],

d.lastcontentchange as [LastContentChange],

(select datediff(day,d.lastcontentchange,current_timestamp)) as [DaysSinceLastChange]

from webs as a inner join  

            sites as d on a.siteid=d.id inner join

       userinfo as b on a.siteid=b.tp_siteid left join

         recyclebin as c on a.siteid=c.siteid where b.tp_siteadmin = ‘1’ and a.parentwebid is null   

group by a.fullurl, b.tp_login, d.diskused, d.id, d.bwused, d.diskquota, d.lastcontentchange, a.TimeCreated

Order by a.fullurl

Note: Repeat above query for each SharePoint content database.

References:
http://blogs.technet.com/corybu

http://www.codeplex.com/MSITSRF
http://www.codeproject.com/KB/dotnet/QueriesToAnalyzeSPUsage.aspx

June 18, 2008

How to add SharePoint search to Internet Explorer 7.0?

Filed under: Uncategorized — brij28 @ 7:39 pm
  • Click drop down menu on the right hand side of “Glass” icon and select “Find More Providers…” in IE 7.0

  • Under “Create Your Own” enter URL and Name. Please make sure you search for TEST (k=TEST) in URL. For example,

URL:
http://sharepoint.domain.com/sites/TestSC/SearchCenter/Results.aspx?k=TEST&s=All%20Sites

Note: Above URL is for searching in "All Sites" (in entire SharePoint Server Farm).

Also note that I have specified "SharePoint Search" as the name of the search provider.

  • Click “View” link, if you want to look at the XML file, click “Install” button otherwise, which will add this custom search provider to IE 7.0

  • Once the Search Provider will be added, you will see it listed in Search Engine List.

  • Search for something, let’s say “sharepoint” and select “SharePoint Search” – the custom search provider, which we have added in previous steps. It will ask you for credentials to connect to the SharePoint site. Enter your credentials and it will return search results.

June 12, 2008

How to configure Records Center in Microsoft Office SharePoint Server 2007

Filed under: Uncategorized — brij28 @ 6:48 pm
In this post, I will walk you through the steps for configuring Records Center site in MOSS 2007. Luckily, Records Center Site template is available with both Standard and Enterprise Edition of Microsoft Office SharePoint Server 2007.

Let’s start with understanding the purpose of setting up Records Center site. Why do we need central repository for our contents? Well, you can store almost all kind of contents in SharePoint but if you will not manage it properly, SharePoint contents will grow tremendously and eventually it will go out of control. The only way to prevent SharePoint servers from deteriorating in the future with an overload of content is to start archiving unwanted information. This is done by linking live or active SharePoint sites to a Record Center.

I am going to create a new site collection for Records Center in my existing SharePoint server farm however it is possible to create a Records Center in a separate farm and link it to SharePoint sites in this farm. In fact, that would be a better approach as you will be moving unwanted SharePoint contents to the content databases of another farm which will help you in keeping your live or active SharePoint farm content databases as small as possible.

Here are the steps:

1. Create Records Center site.

2. Create library for storing archive contents from SharePoint live sites.

3. Create and apply Information Management Policy for the retention period.

4. Define Record Routing rule for the content type.

5. Configure Record Center from SharePoint Central Administration site.

6. Start archiving unwanted SharePoint contents.

· Create a new site collection for Records Center.

· I have named it “Records Center Site”.

· Here is the Records Center site out of the box. In this example, we will configure Record Center site to archive project documents from live or active SharePoint site – “Test Site Collection”. Create a new document library for unwanted project records (documents).

· I have named it “Project Documents Repository”. Please note that I have selected “None” in Document Template as my project document could be a word, excel or any other document.

· Define policy for the retention period. Click “Site collection policies” link under Site Collection Administration.

· Create a new policy. Click “Create” link on the top right corner.

· I have named it “Project Document Policy”. I have selected all auditing options to keep the track of any changes in these documents. I have selected 5 years retention period for these documents after they are last modified. They will be deleted after 5 years.

Note: Records (documents) older than 5 years will be deleted and sent to “Recycle Bin”. Records Center administrator will then decide to delete them permanently. If there is a need, administrator can restore documents from recycle bin.

· Site collection policy is successfully created.

· Apply policy “Project Documents Repository” document library. Click “Information management policy settings” link under Permissions and Management.

· Select “Use a site collection policy” option and apply “Project Document Policy” , which we created in previous steps.

· Set same Meta data for this document library – “Project Documents Repository”. This is because when you archive contents from live SharePoint site, it will be stored here and that’s why it is good to have same Meta data as document library of live SharePoint site. Click “Add from existing site columns” link under Columns.

· Add all those columns (properties), which you have for your live document library contents.

· I have also modified “All Documents” under Views to show these Meta data in default view.

· Here is how “Project Documents Repository” looks like after following above steps.

· Create “Record Routing” to archive project documents in “Project Documents Repository”. Click New => New Item under Record Routing.

· I have used “Project Content Type” for creating project documents in my live site – Test Site Collection. Record Routing title will be the content type which you want to archive from live SharePoint site. So in title I have “Project Content Type”. Location will be the name of the document library where you want to route these records. In our case it is “Project Documents Repository”.

· Everything is set in our Records Center and here is how it looks like after following above steps.

Note: If you have not specified Records Routing properly, it will route all the documents to “Unclassified Records” document library using default “Unclassified Records” routing when you archive them from SharePoint live sites.

· Now, configure Record Center from SharePoint Central Administration site. Go to Application Management and click “Records center” link under External Service Connections.

· Provide the URL of the Records Center site appended with /_vti_bin/officialfile.asmx as shown in example. I have used display name as “Records Center”. So when somebody will right click on document to be archived, he/she will see “Send To => Records Center” in the menu.

URL: http://sharepoint.domain.com/sites/RC/_vti_bin/officialfile.asmx

Display Name: Records Center

· That’s it. You have successfully configured Records Center. Now, let’s test it. As shown below, I am going to archive one of the documents from “Project Document Library” of my live site – “Test Site Collection”. Right click on the document to be archived, select “Send To => Records Center”.

· If you have followed all above steps properly, you will see “Operation Completed Successfully” message.

· Document will still remain in the document library of your live site. You may delete it as it has been stored in Records Center already and it is not needed any more.

· Let’s go back to Records Center site to check, if the document is successfully archived and yes, it is. It will create folder with the time stamp to store those archive documents.

· In side the folder, you can see the document and the Meta data (properties) of that document. Properties are stored in the form of an XML file.

There is lot more you can do with Records Center other than just moving archive contents however idea behind this post is just to give an overall idea of how Records Center site works.

· Following screen captures explain how to copy accidentally archived document (if you have deleted it from everywhere – document library, recycle bin etc. in your live site) back to its original location. This has nothing to do with Records Center but I have added this just to give you an idea of copying document from one location to the other. Right click on document to be copied and click “Send To => Other Location”

· Provide the destination URL.

Destination document library or folder:

http://sharepoint.domain.com/sites/TestSC/ProDL

Also you can change the document name if you wish.

· Click “OK” button at the bottom.

· Document successfully copied to “Project Document Library” for Test Site Collection.


Link to a Document content type, Add link to a document to announcement items and Meta data for folder contents

Filed under: Uncategorized — brij28 @ 1:15 am
In this post, I am going to talk about few interesting things. Let’s start with “Link to a Document” content type. I will also talk about best practices in SharePoint 2007 while I will go through these topics.

  1. Create a new document library. I am going to create document library for project documents.

  1. As shown below, I have named this document library as “ProDL” and entered “Project Document Library” as description.

Note: It is a good idea to abbreviate your list or library name when you create them. This will help in keeping SharePoint URLs as short as possible. You can change the name of the document library to whatever you want later on by going to document library settings. Please keep going to learn how?

  1. Go to the document library settings of document library – “ProDL”, which you created in previous step. Click on “Title, description and navigation” link under General Settings

  1. You can change name here to whatever you want. I have changed it to full name – “Project Document Library” and that is what it will display as name for this document library in SharePoint but the URL for this document library will still use the abbreviated name – “ProDL”, which we entered at the time of creating it.

  1. As shown below, name appears as “Project Document Library” in SharePoint site.

  1. Click “Advanced settings” link under General Settings

  1. Select “Yes” for “Allow management of content types?” as shown below.

  1. After you finish step 7, you will be able to see “Add from existing site content types” link under Content Types. Click this link – “Add from existing site content types”

  1. Select “Link to a Document” content type and add it.

  1. After step 9, you should be able to see “Link to a Document” in “New” menu of your document library.

  1. Click “Link to a Document” under “New” menu.

  1. Enter “Document Name” and “Document URL” for the existing document at other location (in another document library).

  1. Here is how “Project Document Library” looks like after adding one document and one “Link to a Document” content.

Note: Always use “Link to a Document” content type instead of adding the same document to another document library or the document library of another site.

How to add link to the document to Announcements list?

  1. Go to Announcement Settings => List Settings as shown below.

  1. Click “Add from existing site columns” link under Columns.

  1. Select “Web Page” column and add it. Please make sure you have selected “Add to all content types” and “Add to default view” as shown below.

  1. That’s it. You are done. Now you can add link to a document when you add announcement items to Announcement list.

  1. Here is how Announcement list looks like after adding announcement items with link to a document.

Finally let’s talk about Meta data for folder content type. Never use folders, always use views. It is NOT recommended to use folders in document library or any other list but there are certain situations where you may want to add folders and then Meta data for those folders.

How can you add Meta data to folders?

  1. Go to Site Actions => Site Settings => Modify All Site Settings

  1. Click “Site content types” link under Galleries.

  1. Click “Create” link on top left corner.

  1. We are going to create folder content type for defining Meta data for folder contents. Please select the settings as shown below. You can add this new content type to “Custom Content Types” by choosing it under “Existing group” or you can create a new group.


  1. Go to the document library where you want to define Meta data for folder contents. Click Settings => Document Library Settings.

  1. Click “Advanced settings” under General Settings

  1. Select “Yes” for “Allow management of content types?” as shown below.

  1. After step 7, you will be able to see Content Types in document library settings. Click “Add from existing site content types” link under Content Types.

  1. Select “Folder Content” content type, which we have created in previous steps and add it.

  1. As shown below, “Folder Content” is now added to your document library. Click “Folder Content” link under Content Types.

  1. Add appropriate columns for your folder contents. I will add couple of columns by clicking “Add from existing site or list columns” link under Columns.

  1. I have added “Category” and “Release Date” columns as shown below.

  1. Now, it will allow me add Meta data whenever I create a new folder in this document library. Following screen shots show how to add Meta data to existing folders in your document library.

  1. Right click on folder and select “Edit Properties”.

  1. Select “Folder Content” (which is what we have created in previous steps), if you have more than one content type listed in drop down menu.

  1. Enter Meta data as shown below.

  1. Here is how document library looks like after adding Meta data for folders.

June 7, 2008

When to use a Site Collection over a Sub-Site

Filed under: SharePoint 2007 — brij28 @ 1:31 am
When should you use site collections over sub-sites in your design?

Site collections really bring a considerable amount of flexibility and scalability to your design and I would recommend that you start from the perspective of multiple site collections and then see if you can find logical and compelling reasons to move away from them.

Here are some general guidelines that you should consider before you create a site collection or a sub site.
Consider the core purpose of the site structure you are contemplating. Consider it in relation to the other site structures your portal may house. It is generally not advisable to intermingle disparate sites in the same site collection. For instance you probably would not want your Internet presence site and your collaboration portal to all be part on the same site collection. There are simply too many moving parts that are completely unrelated to one another to make this feasible. While this is a simple example you could consider something such as separating out department sites or even project sites. I do this a lot simply because HR may need a different approach to security than Finance.

If distributed control is something that you want then multiple site collections would be the best way to go. Site collections really are the first layer where we can truly separate out security and administration. Although we can break security inheritance at the site level these still fall under a single umbrella or controlling entity, the site collection and its administrator. I see this a lot when it comes to those core department sites that any organization has. Many times Human Resources, Finance, IT, and Operations will be separated out into their own site collections to provide an additional layer of content control.

Boundaries are a consideration as well. Some of the key components that make up a SharePoint site are scoped to the site collection level. While there are ways around these boundaries they should be accounted for in your design. The following is a list details some of these components.

 
  • Site Columns and Content Types
  • Site Quotas
  • SharePoint Security Groups
  • Recycle Bin
  • Site and List Templates and Master Pages
  • Search Scope and Keywords
  • Out-of-box Back up and Restore capabilities
  • Separate Content Databases
If you have groups that cannot share resources they really need to be broken out into separate site collections. Governance can come into play here from the stand point that if the two groups should not have the ability to view or control one another’s content then they should be separate or a single, and separate, entity should administer the site collection.
Finally one of the biggest drivers for a separate site collection is security. The ability to place an entirely separate security structure around each site collection can be critical. Site collections can also be broken out into separate content databases which can offer an additional layer of security at the database.
My general feel on this is to begin my design with multiple site collections in mind and then see if I can find a valid reason to deviate from that design. Sometimes the reason is there but more often than not I find that site collections simply bring too much to the table.

Site Settings at Top Level Site or Site Collection:

http://sharepoint.domain.com/sites/IT

Site Settings at Sub Site:

http://sharepoint.domain.com/sites/IT/WindowsTeamSite
Or
http://sharepoint.domain.com/sites/IT/UnixTeamSite

Note: I have copied this post from Joe Shepherd’s blog. Thank you very much Joe for such a great post!

« Newer PostsOlder Posts »

Create a free website or blog at WordPress.com.