<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Mack Page</title>
	<atom:link href="http://www.themackpage.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.themackpage.com</link>
	<description>Emancipate yourself from mental slavery; none but ourselves can free our minds.  - Nesta</description>
	<lastBuildDate>Mon, 30 Aug 2010 21:01:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SharePoint Saturday Columbus Slide Deck Posted</title>
		<link>http://www.themackpage.com/2010/08/30/sharepoint-saturday-columbus-slide-deck-posted/</link>
		<comments>http://www.themackpage.com/2010/08/30/sharepoint-saturday-columbus-slide-deck-posted/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 21:01:25 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2010/08/30/sharepoint-saturday-columbus-slide-deck-posted/</guid>
		<description><![CDATA[Some of you have been asking why it has taken so long to post my slides from SharePoint Saturday Columbus.  Well, I have no excuse other than being a ninny.  Link below:
SharePoint Saturday Columbus - The Great InfoPath Voyage
I will be adding to this post within the next day or so, with a [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you have been asking why it has taken so long to post my slides from SharePoint Saturday Columbus.  Well, I have no excuse other than being a ninny.  Link below:</p>
<p><a href="http://www.themackpage.com/files/SPSCBUS-2010%20-%20The%20Fantastic%20InfoPath%20Voyage.pdf" target="_blank">SharePoint Saturday Columbus - The Great InfoPath Voyage</a></p>
<p>I will be adding to this post within the next day or so, with a link out to the code for the presentation as well.</p>
<p>Thanks for coming to my session, and thanks for the Twitter follows <a href="http://www.twitter.com/mack247" target="_blank">@mack247</a>.</p>
<p>Also, thanks to SharePointSupport.com for footing the bill for me to come to speak to everyone.  Please check out our SharePoint Support and Administration services at <a href="http://www.sharepointsupport.com">www.sharepointsupport.com</a>.  Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2010/08/30/sharepoint-saturday-columbus-slide-deck-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speaking at SharePoint Saturday Columbus</title>
		<link>http://www.themackpage.com/2010/08/12/speaking-at-sharepoint-saturday-columbus/</link>
		<comments>http://www.themackpage.com/2010/08/12/speaking-at-sharepoint-saturday-columbus/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 13:08:41 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2010/08/12/speaking-at-sharepoint-saturday-columbus/</guid>
		<description><![CDATA[I will be speaking at SharePoint Saturday Columbus this Saturday, August 14.&#160; It will be one of the more interesting sessions I have given at any of my SharePoint speaking engagements.&#160; 
I am going to be building out a comprehensive solution based on InfoPath 2010 and SharePoint 2010.&#160; We are going to have all the [...]]]></description>
			<content:encoded><![CDATA[<p>I will be speaking at <a href="http://www.sharepointsaturday.org/columbus/default.aspx" target="_blank">SharePoint Saturday Columbus</a> this Saturday, August 14.&#160; It will be one of the more interesting sessions I have given at any of my SharePoint speaking engagements.&#160; </p>
<p>I am going to be building out a comprehensive solution based on InfoPath 2010 and SharePoint 2010.&#160; We are going to have all the tools open at some point – Central Admin, InfoPath Designer, SharePoint Designer, Visual Studio, you name it.</p>
<p>Here is the official abstract for the session:</p>
<p><strong>The Fantastic InfoPath Voyage</strong></p>
<p>Join SharePoint Saturday veteran Joe Mack as he takes you through an end-to-end solution using Microsoft InfoPath and SharePoint 2010. After a brief introduction to some of the key new features in InfoPath 2010, we will: design and deploy a form template for use in the browser through Forms Services; develop a custom WCF service, host it within SharePoint 2010 and wire it up to our InfoPath template; create an on-form State Machine and link it to SharePoint metadata; automate the archival of completed forms to a SharePoint Records Center using SharePoint Designer workflow; and use the very cool ECMAScript Client Object Model to open the forms in a Modal Dialog.</p>
<p>So, if you are already signed up, I look forward to seeing you in Columbus.&#160; If not, then you will be able to get the slides and code here shortly after this Saturday.&#160; Depending on the technology present in Columbus, there might even be a video of my session available somewhere.</p>
<p>Stay tuned to this space for updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2010/08/12/speaking-at-sharepoint-saturday-columbus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>June Microsoft Patch May Break SharePoint</title>
		<link>http://www.themackpage.com/2010/06/20/june-microsoft-patch-may-break-sharepoint/</link>
		<comments>http://www.themackpage.com/2010/06/20/june-microsoft-patch-may-break-sharepoint/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 11:41:50 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2010/06/20/june-microsoft-patch-may-break-sharepoint/</guid>
		<description><![CDATA[While I would love to just be lazy and link out to someone else's article on this matter, no one has been able to get the product name right yet - everyone keeps referencing the nonsensical Windows SharePoint Server 3.0 - so I will just provide the short and shorter of it right here without [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="workmen-1" align="left" src="http://www.themackpage.com/blog/wp-content/workmen-1.jpg" width="240" height="211" />While I would love to just be lazy and link out to someone else's article on this matter, no one has been able to get the product name right yet - everyone keeps referencing the nonsensical Windows SharePoint Server 3.0 - so I will just provide the short and shorter of it right here without giving anyone else the credit. Perhaps they should have just stuck with the <strong>WSS 3.0</strong> acronym.</p>
<p>At any rate, there is a patch, <a href="http://www.microsoft.com/technet/security/bulletin/ms10-039.mspx" target="_blank">Microsoft Security Bulletin MS10-130</a> (KB983444), that shipped as part of the June "Patch Tuesday" last week. The patch is supposed to fix a security hole whereby a user could elevate his or her privileges on WSS 3.0 all by themselves.</p>
<p>Great idea on paper right? Regular users making themselves site collection admins sounds like a bad thing, and fixing it must be good. Well, several users have been posting to the SharePoint Forums that, after applying the patch, they are seeing an "Unable to connect to configuration database" error, apparently even on Central Admin. There have been reports that running the SharePoint Configuration Wizard has fixed the issue in some cases, but not all of them.</p>
<p>It's kind of funny that I heard the Hippocratic Oath-y phrase "do no harm" put forth by a SharePoint MVP just this week as the mantra of the SharePoint Product Team when working on the WSS 3.0 / MOSS 2007 to SPF 2010 / SPS 2010 upgrade process. Also adding to my personal giggles over this is the fact that I shared a Twitter thread with some friends this week about some great free products in the open source community and personally <a href="http://www.twitter.com/mack247" target="_blank">remarked</a> that sometimes you really don't get what you pay for.</p>
<p>While no "Patch Tuesday" being called "Black Tuesday" scenario is good for Microsoft, it just seems funny to me after seeing those Tweets. You can just picture someone at Microsoft saying -- at least the free stuff is messed up. Could you imagine if we messed up MOSS installations? Now THAT would be bad.</p>
<p>As exepcted, Microsoft is sort of not really acknowledging the issue yet, but probably scrambling behind the scenes to get a fix. Given their recent track record of being highly successful at delivering good patches and quickly fixing those that aren't good, I would expect this issue to be resoved in short order.</p>
<p>The lesson, as always, is this: anything you do that takes control of YOUR environment out of YOUR hands, to include the myopic <strong><em>Download and Install Updates Automatically</em></strong> should have "caveat emptor" written all over it beforehand and "I told you so" afterwards.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2010/06/20/june-microsoft-patch-may-break-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress Update Will Mess You Up</title>
		<link>http://www.themackpage.com/2010/05/16/wordpress-update-will-mess-you-up/</link>
		<comments>http://www.themackpage.com/2010/05/16/wordpress-update-will-mess-you-up/#comments</comments>
		<pubDate>Sun, 16 May 2010 18:55:34 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2010/05/16/wordpress-update-with-mess-you-up/</guid>
		<description><![CDATA[Depending on your hosting provider, you may or not end up with portions of your Wordpress blog (main site, admin site, plugins, etc.) that are completely hosed. Yes, that is a technical term.
Like I said - it all depends on your hosting provider. My blogs use 1and1, and I experienced this issue with my admin [...]]]></description>
			<content:encoded><![CDATA[<p>Depending on your hosting provider, you may or not end up with portions of your Wordpress blog (main site, admin site, plugins, etc.) that are completely hosed. Yes, that is a technical term.</p>
<p>Like I said - it all depends on your hosting provider. My blogs use 1and1, and I experienced this issue with my admin pages (&lt;blog url&gt;/wp-admin/) only. After about 30 minutes of spinning wheels, I discovered that there was an issue where the new Wordpress admin pages were using PHP5 and the server was not set up to use PHP5.</p>
<p>All I had to do was add the following lines to my .htaccess file, located in the root of my blog's file system, and everything started working like a charm.</p>
<p><code>Options All -Indexes<br />
AddType x-mapp-php5 .php<br />
AddHandler x-mapp-php5 .php</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2010/05/16/wordpress-update-will-mess-you-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the SharePoint 2010 Dialog Platform with Forms Services</title>
		<link>http://www.themackpage.com/2010/05/06/using-the-sharepoint-2010-dialog-platform-with-forms-services/</link>
		<comments>http://www.themackpage.com/2010/05/06/using-the-sharepoint-2010-dialog-platform-with-forms-services/#comments</comments>
		<pubDate>Thu, 06 May 2010 16:59:14 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Knowledge Management]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2010/05/06/using-the-sharepoint-2010-dialog-platform-with-forms-services/</guid>
		<description><![CDATA[First things first, thanks to Jomit for his Dialog Platform post, which served as the basis for my work herein.
So, I recently had occasion to open up a browser-based Forms Services form from outside of the site collection where the template and the "Save Location" both reside…you know, kind of like one of those completely [...]]]></description>
			<content:encoded><![CDATA[<p>First things first, thanks to Jomit for his <a href="http://jomit.blogspot.com/2009/12/dialog-platform-in-sharepoint-2010-how.html" target="_blank">Dialog Platform post</a>, which served as the basis for my work herein.</p>
<p>So, I recently had occasion to open up a browser-based Forms Services form from outside of the site collection where the template and the "Save Location" both reside…you know, kind of like one of those completely unplanned "Real World Scenarios" that we are always hearing about.</p>
<p>Anyway, anyone that has opened up a Forms Services form in the browser has noticed the extremely long URL that is necessary.  For the uninitiated, here is a very quick synopsis of the various portions of the URL.</p>
<ul>
<li>
<div><strong>Base URL.</strong> Forms Services forms are processed by an ASP.NET page located in the layouts folder.  This is the base URL and it looks like this:</div>
<ul>
<li>http://&lt;&lt;URL to your site&gt;&gt;/_layouts/FormServer.aspx</li>
</ul>
</li>
<li>
<div><strong>Query String.</strong> There are various query string parameters that you may or may not have, depending on your situation.</div>
<ul>
<li>
<div><strong>XsnLocation.</strong> This is the location of your Form Template, and it looks something like what appears below.  If you click on the "New" button in a document library configured to use the form, this parameter is NOT encoded, although the others are…it's probably a good idea for you to encode all of them if you are building your own long-ass URL from scratch.  For the sanity of anyone reading, I am not going to show encoded stuff here.  If you would like a quick and easy way to encode/decode stuff, <a href="http://meyerweb.com/eric/tools/dencoder/" target="_blank">here is a good one</a>.</div>
<ul>
<li>XsnLocation=http://&lt;&lt;site&gt;&gt;/Form Templates/Template Name.xsn</li>
</ul>
</li>
<li>
<div><strong>Save Location.</strong> This is usually optional, as the form will just submit to the Document Library specified in the form template if this parameter is not there.  Here is what it normally looks like:</div>
<ul>
<li>SaveLocation=http://&lt;&lt;site&gt;&gt;/Documents</li>
</ul>
</li>
<li>
<div><strong>Source.</strong> This is the page you want to bring up after the user is done with the form…and is the source of the challenge I had that started this whole darn thing.  Basically, if you try to pass a Source parameter that is from a different site collection, Forms Services will treat you like a pigeon treats a statue.  Here is what this parameter looks like:</div>
<ul>
<li>Source=http://&lt;&lt;site&gt;&gt;/Pages/Success.aspx</li>
</ul>
</li>
<li>
<div><strong>DefaultItemOpen.</strong> This parameter is used to force the form to open in a browser.  If it is set to something other than '1' or not present, the form will try to open in InfoPath.  Here is what the "open in browser" option looks like:</div>
<ul>
<li>DefaultItemOpen=1</li>
</ul>
</li>
</ul>
</li>
<li>
<div><strong>The Whole Damn Thing.</strong> So, if you put all that stuff together, it looks something like this:</div>
<ul>
<li>http://docs.company.com/sites/active/_layouts/FormServer.aspx?XsnLocation=http://docs.company.com/sites/active/Form Templates/Template Name.xsn&amp;SaveLocation=http://docs.company.com/sites/active/Documents&amp;Source=http://docs.company.com/sites/active/Documents/Forms/AllItems.aspx&amp;DefaultItemOpen=1</li>
</ul>
</li>
</ul>
<p>So, I am not sure if you caught on to the main issue reading through all that junk, but here it is in a nutshell.  If you try to pass in a "Source" parameter that is from a different site collection than the one where the template is located, Forms Services will barf.  That kind of puts on damper on my "Real World" scenario of having the users access a centralized landing page / application, while exhibiting a higher level of control over the document processing center where the forms are going to be filled out.</p>
<p>I know what some of you might be thinking – just use a new window/tab.  The problem with that is that not everyone likes popups, plus, sometimes you end up with a useless popup sitting there just displaying "The form has been closed" in the middle of the screen.  Besides, popups are just so Web 1.0. Modal windows, that's wave of the future, man!</p>
<p>For those of you that have seen SharePoint 2010 in action, you know Microsoft has gotten behind the whole modal window thing as well.  In fact, if you have access to a SharePoint 2010 box, go ahead and type in the URL to the Upload form of one of your document libraries (http://&lt;&lt;site&gt;&gt;/Documents/Forms/Upload.aspx).  SharePoint will get the standard Upload page from the _layouts folder, and it pretty much looks like a normal SharePoint page, right?  Now, add in a query string parameter so it looks like this (http://&lt;&lt;site&gt;&gt;/Documents/Forms/Upload.aspx?IsDlg=1).  See that?  That form is damn sure ready for a modal dialog, huh?  In fact, it is the standard way that Microsoft allows users to upload documents to a library, by putting the Upload form in a modal window and using the IsDlg parameter to keep all the extraneous stuff from showing up.</p>
<p>Well, that's not the only place where Microsoft has bought into this whole modal window thing.  As it turns out, there is a JavaScript method set up for this that comes along with the ECMAScript Class Library that you can use from just about any SharePoint page.  Check out Jomit's post that I referenced above for a little more detail and the links to learn more about the method and the ECMA library.</p>
<p>Since the FormsServer.aspx page doesn't even recognize the IsDlg parameter, I didn't even need it.  So, armed with everyone's favorite way to hack a SharePoint page (the Content Editor Web Part), I set out to get my InfoPath form to open up in a modal window.  Here is the code that got it to work:</p>
<p style="margin-left: 36pt"><strong><em>&lt;script type="text/javascript"&gt;<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> //Handle the DialogCallback callback<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> function DialogCallback(dialogResult, returnValue)<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> {<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> }<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> //Open the Dialog<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> function OpenModalDialog(dlgURL)<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> {<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> var options = {<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> url: dlgURL,<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> width: 700,<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> height: 700,<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> dialogReturnValueCallback: DialogCallback<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> };<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> SP.UI.ModalDialog.showModalDialog(options);<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em> }<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em>&lt;/script&gt;<br />
</em></strong></p>
<p style="margin-left: 36pt">
<p style="margin-left: 36pt"><strong><em>//Link to InfoPath Form<br />
</em></strong></p>
<p style="margin-left: 36pt"><strong><em>&lt;a href="javascript:OpenModalDialog('http://docs.company.com/sites/active/_layouts/FormServer.aspx?XsnLocation=http://docs.company.com/sites/active/Form%20Templates/Form%20Template.xsn&amp;amp;SaveLocation=http%3A%2F%2Fdocs%2Ecompany%2Ecom%2Fsites%2Factive%2FDocuments&amp;amp;DefaultItemOpen=1');" onmouseover="javascript:window.status='';return true;" onmousedown="javascript:window.status='';return true;"&gt;Coolest Form Ever&lt;/a&gt;<br />
</em></strong></p>
<p>So, you see that I have gotten rid of the "Source" parameter in the Query String, as that still breaks the form if you send it something that is in a different site collection than the template, but the UX is about 100 times better than having a popup or (even worse) sending them to a page that is on a different site collection than where they started.</p>
<p>I still need to move this out of the CEWP before it is ready for prime time, but just think about the implications here.  This is a bona fide slam dunk and a huge win for Microsoft by allowing us to quickly deliver solutions that are in line with what others are doing in the industry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2010/05/06/using-the-sharepoint-2010-dialog-platform-with-forms-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Saturday Kansas City Slides</title>
		<link>http://www.themackpage.com/2009/12/15/sharepoint-saturday-kansas-city-slides/</link>
		<comments>http://www.themackpage.com/2009/12/15/sharepoint-saturday-kansas-city-slides/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:22:55 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[Knowledge Management]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2009/12/15/sharepoint-saturday-kansas-city-slides/</guid>
		<description><![CDATA[Not too much time to blog today, but several folks have been asking about the slide deck from my metadata talk at SharePoint Saturday in Kansas City.
Please download the slides from the link below.
Metadata Briefing Slide Deck – SPSKC
I should have some time coming up in the next week or two to start blogging a [...]]]></description>
			<content:encoded><![CDATA[<p>Not too much time to blog today, but several folks have been asking about the slide deck from my metadata talk at SharePoint Saturday in Kansas City.</p>
<p>Please download the slides from the link below.</p>
<p><a href="./files/SharePoint%20Metadata%20Briefing.zip" target="_blank">Metadata Briefing Slide Deck – SPSKC</a></p>
<p>I should have some time coming up in the next week or two to start blogging a little more frequently.&#160; </p>
<p>I’ll also throw a teaser out there and let you know that I am working on a cool SharePoint content aggregator site that should be live by the end of the year.&#160; Nothing fancy, just a single place to go to get a lot of SharePoint information that is currently somewhat scattered throughout the blogosphere.&#160; Hopefully, I have not said too much - I know there are lots of people out there with more brains and free time than myself.&#160; I would hate for someone to steal and implement my idea, since I would not do well in prison. &lt;grin /&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2009/12/15/sharepoint-saturday-kansas-city-slides/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Display RSS Feeds in Windows SharePoint Services (WSS)</title>
		<link>http://www.themackpage.com/2009/09/29/how-to-display-rss-feeds-in-windows-sharepoint-services-wss/</link>
		<comments>http://www.themackpage.com/2009/09/29/how-to-display-rss-feeds-in-windows-sharepoint-services-wss/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 04:49:36 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2009/09/29/how-to-display-rss-feeds-in-windows-sharepoint-services-wss/</guid>
		<description><![CDATA[I have had multiple clients over the past couple of years task me with getting external RSS feeds on their WSS sites.&#160; While MOSS comes with an RSS Feed web part, and while there are other RSS Feed web parts out there for free or a nominal fee, I though I would make a post [...]]]></description>
			<content:encoded><![CDATA[<p>I have had multiple clients over the past couple of years task me with getting external RSS feeds on their WSS sites.&#160; While MOSS comes with an RSS Feed web part, and while there are other RSS Feed web parts out there for free or a nominal fee, I though I would make a post about the two most common ways I have implemented RSS Feeds onto a WSS page or site.</p>
<h3>Method 1 – The XML Web Part</h3>
<p>1.&#160; Navigate to the page where you would like to show an RSS Feed.</p>
<p>2.&#160; Click on <strong>Site Actions</strong>, then <strong>Edit Page</strong>.</p>
<p>3.&#160; Click the <strong>Add a Web Part</strong> link in the zone where you would like to add the RSS Feed.</p>
<p>4.&#160; Under <strong>All Web Parts | Miscellaneous</strong>, select the <strong>XML Web Part</strong> and then click the <strong>Add</strong> button.</p>
<p>5.&#160; Click the open the tool pane link in the web part.</p>
<p>6.&#160; Enter the RSS Feed URL in the <strong>XML Link</strong> field.</p>
<p>7.&#160; Click the <strong>XSL Editor</strong> button.</p>
<p>8.&#160; Add the following code:</p>
<pre class="xml">&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="font-weight: bold; color: black;">?&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:stylesheet</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span>
    <span style="color: #000066;">xmlns:xsl</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/1999/XSL/Transform&quot;</span>
    <span style="color: #000066;">exclude-result-prefixes</span>=<span style="color: #ff0000;">&quot;xsl&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:output</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;xml&quot;</span> <span style="color: #000066;">omit-xml-declaration</span>=<span style="color: #ff0000;">&quot;yes&quot;</span> <span style="color: #000066;">indent</span>=<span style="color: #ff0000;">&quot;yes&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;/&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;div<span style="font-weight: bold; color: black;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:apply-templates</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;rss/channel&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/div<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;rss/channel&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:variable</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;link&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;link&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:variable</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;description&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;description&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;ul<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:apply-templates</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;item&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/ul<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;item&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:variable</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;item_link&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;link&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:variable</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;item_title&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;description&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;li<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;{$item_link}&quot;</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">&quot;{$item_title}&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;title&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/a<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/li<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:stylesheet<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;</pre>
<p>9.&#160; Expand the <strong>Appearance</strong> node and enter your desired web part title in the <strong>Title</strong> field.</p>
<p>10.&#160; Click the <strong>OK</strong> button.</p>
<p>11.&#160; You are done.&#160; The RSS Feed should not be displayed on the page as a series of bulleted items.</p>
<h3>Method 2 – Using the Data Source Library and DataForm Web Part in SharePoint Designer</h3>
<p>1.&#160; In SharePoint Designer, open the page where you would like to add the RSS Feed.</p>
<p>2.&#160; Click on the name of the web part zone where you would like to add the RSS Feed.</p>
<p>3.&#160; In the <strong>Data Source Library</strong> dialog, expand the <strong>Server-side Scripts</strong> node and click on <strong>Connect to a script or RSS feed…</strong></p>
<p>4.&#160; On the <strong>General</strong> tab, enter a <strong>Name</strong> and/or <strong>Description</strong>.</p>
<p>5.&#160; On the <strong>Source</strong> tab, enter the RSS Feed’s URL in the <strong>Enter the URL to a server-side script</strong> field.</p>
<p>6.&#160; If authentication is required for your RSS Feed, enter the authentication information on the <strong>Login</strong> tab.</p>
<p>7.&#160; Hover over your newly-formed Data Source, click the down arrow to enable the hover menu, and select <strong>Show Data</strong>.</p>
<p>8.&#160; Browse down to the <strong>Item</strong> node and select the <strong>title</strong> field.&#160; Hold down the Ctrl key and then select the <strong>description</strong> field.</p>
<p>9.&#160; Click on the <strong>Insert Selected Fields As</strong> button and then click <strong>Multiple Item View</strong>.</p>
<p>10.&#160; You are done.&#160; The RSS Feed should now be displayed on the page.</p>
<p><strong><u>NOTES:</u></strong>&#160;</p>
<p>You can click the small arrow in the top right of the newly-created DataFormWebPart and then select <strong>Change layout</strong> to choose different display options for the web part.&#160; I normally use the second one on the list, as that is a slightly cleaner display.&#160;</p>
<p>You can also make it a little more practical by enabling the title to link to the original post on the site that generated the RSS Feed.&#160; Do this by hovering over the title of the first RSS Feed entry and clicking the small arrow and then selecting <strong>Hyperlink</strong> in the <strong>Format as</strong> field.&#160; In the <strong>Hyperlink</strong> dialog, make sure that the <strong>Text to display</strong> field says <strong>{title}</strong> and the <strong>Address</strong> field says <strong>{link}</strong>.&#160;</p>
<p>The last tweak is to get rid of the “description:” text – remove it with your keyboard for the first RSS Feed entry and it will be removed for all entries.</p>
<p>I hope this is a little useful to some of you.&#160; Thanks.</p>
</div>
</div>
</div>
<p></body></html></xml></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2009/09/29/how-to-display-rss-feeds-in-windows-sharepoint-services-wss/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Gmail Knows Me Better Than I Know Myself</title>
		<link>http://www.themackpage.com/2009/07/24/gmail-knows-me-better-than-i-know-myself/</link>
		<comments>http://www.themackpage.com/2009/07/24/gmail-knows-me-better-than-i-know-myself/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 06:49:51 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2009/07/24/gmail-knows-me-better-than-i-know-myself/</guid>
		<description><![CDATA[Gmail saved me from some mild embarrassment earlier tonight.&#160; At first, I was pretty impressed by the sheer idiot-proof-ness of it…until I realized that without it, I would have looked like an idiot.&#160; I guess that is how idiotproofing works…but it was more than a little disconcerting that I was the idiot beneficiary in this [...]]]></description>
			<content:encoded><![CDATA[<p>Gmail saved me from some mild embarrassment earlier tonight.&#160; At first, I was pretty impressed by the sheer idiot-proof-ness of it…until I realized that without it, I would have looked like an idiot.&#160; I guess that is how idiotproofing works…but it was more than a little disconcerting that I was the idiot beneficiary in this case.</p>
<p>First things first, I love Gmail and can’t stand working with e-mail in anything other than the thread view now.&#160; I will admit that it was originally a little painful, but only because I fear change and I am, as I briefly intimated in the prior paragraph, an idiot of the highest order…or perhaps “lowest order” is the appropriate turn of phrase in this instance.&#160; Zoho mail takes this to the next level by enabling the user to expand and collapse threads on the main Inbox page, which is the goods…and one of the reasons why there will probably be a future blog post entitled “How I Migrated From Gmail to Zoho”.</p>
<p>OK – back to the geeks at Google saving my bacon.&#160; I was trying to accomplish something that should be very simple to do without looking like an idiot…sending an e-mail with an attachment.&#160; Here is an except from the body of the e-mail.&#160; Notice the part that I have underlined.</p>
<p><a href="http://www.themackpage.com/img/gmail1.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="gmail1" border="0" alt="gmail1" src="http://www.themackpage.com/img/gmail1.jpg" width="244" height="211" /></a></p>
<p>So, I finished typing the message, and being of questionable intelligence, I clicked the “Send” button without actually attaching the ZIP file I referenced in the e-mail.&#160; Gmail told me, in a very unobtrusive and non-condescending way, that I may have been an idiot, or at least committed an act of questionable intelligence.&#160; Here is what I saw next on my screen.</p>
<p><a href="http://www.themackpage.com/img/gmail2.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="gmail2" border="0" alt="gmail2" src="http://www.themackpage.com/img/gmail2.jpg" width="244" height="94" /></a></p>
<p>I clicked “Cancel”, attached the file as originally intended, and clicked “Send” once again. </p>
<p>This kind of simple solution to a simple problem is what makes the difference between products that people love and products that make people mad…kind of like how my being self-aware enough to know I am an idiot makes me somehow higher up the evolutionary curve than a baboon…although if the lyric genius Danny Alexander is to be believed, I might just be on pretty solid footing with my fellow humans as well. </p>
<p>“I know I’m stupid so I must be smarter than you…”&#160;&#160; -- D. Alexander</p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2009/07/24/gmail-knows-me-better-than-i-know-myself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Helpful Web Parts for FREE!!!</title>
		<link>http://www.themackpage.com/2009/06/23/two-helpful-web-parts-for-free/</link>
		<comments>http://www.themackpage.com/2009/06/23/two-helpful-web-parts-for-free/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 04:28:11 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2009/06/23/two-helpful-web-parts-for-free/</guid>
		<description><![CDATA[Since the response was so great to our articles regarding using the QueryString to pass information to PageViewer web parts, I have decided to make both web parts available, as SharePoint features deployed at the Site Collection level.
You can download the web parts at my company web site:&#160; www.theportalgroup.biz
Just click on “Downloads”, register for free, [...]]]></description>
			<content:encoded><![CDATA[<p>Since the response was so great to our articles regarding using the QueryString to pass information to PageViewer web parts, I have decided to make both web parts available, as SharePoint features deployed at the Site Collection level.</p>
<p>You can download the web parts at my company web site:&#160; <a href="http://www.theportalgroup.biz">www.theportalgroup.biz</a></p>
<p>Just click on “Downloads”, register for free, and they are all yours.</p>
<p><strong>UPDATE:</strong>&#160; Registration is no longer required…and in an unrelated note, special thanks to the over 200 new registered users with a username of “asdf”…I really appreciate it. <strong>&lt;grin /&gt;</strong></p>
<p>In case you have not read the blog posts yet (and don’t want to), here is the basic overview:</p>
<ul>
<li><strong>QueryString Pass-Thru Web Part.</strong>&#160; The first web part will pass through the entire QueryString from the parent Web Part Page, append it to a Base URL, which the user can configure in the tool pane, and display the contents at the concatenated URL in the PageViewer web part.&#160; This is especially useful when you want to link to display content from several external pages that are all part of the same site, with a URL format that looks something like this:&#160; <a href="http://intranet.company.net/Default.aspx?pageid=420">http://intranet.company.net/Default.aspx?pageid=420</a>.&#160; If you wanted to display the contents of 40 different pages in SharePoint using the standard PageViewer web part, you would need 40 separate web part pages, each hard-wired to the target URL.&#160; Using the QueryString Pass-Thru Web Part, you can just set up one Web Part Page, and pass it a QueryString parameter with the pageid every time you want to use that page. </li>
<li><strong>QueryString Parameter Pass-Thru Web Part.</strong>&#160; This web part will pass through a QueryString parameter called ‘Url’ (‘url’ and ‘URL’ will work as well), which contains a properly formatted URL, to a PageViewer web part that will display the contents at that URL.&#160; This is useful for a situation where you want to display content from several different external pages that are specific and separate pages, not just differentiated by the QueryString (e.g. <a href="http://intranet.company.net/hr/Deafult.aspx">http://intranet.company.net/hr/Deafult.aspx</a>, <a href="http://intranet.company.net/finance/Default.aspx">http://intranet.company.net/finance/Default.aspx</a>, etc.)&#160; The benefits are the same as the QueryString Pass-Thru Web Part…you only need one web part page that you can use to connect out to any page, vice needing a separate web part page for every connection, if you were using the standard PageViewer web part. </li>
</ul>
<p>There are a few caveats to keep in mind as well.</p>
<ul>
<li>QueryString Pass-Thru Web Part.&#160; You cannot use a QueryString parameter named ‘id’.&#160; SharePoint will think it needs to look for an ID of its own with that value, and you will get an error on the page. </li>
<li>QueryString Paramter Pass-Thru Web Part.&#160; Be careful of the characters you are using in your ‘Url’ parameter.&#160; It is a good idea to use the HTML character escape sequences.&#160; For instance, if you want to pass a URL that has a query string, you will need to use the escape sequence for the question mark and ampersand(s) or else the code with think the ‘Url’ parameter has ended before you wanted it to end. </li>
</ul>
<p>Hope you enjoy the web parts, and please feel free to let us know what you think.</p>
<p>Oh – one more thing.&#160; If you are interested in expanding on these or otherwise developing them yourself, you can get to the blog posts at the links below.&#160; The first one even has a Screencast that might help those without a lot of SharePoint development experience.</p>
<p><a href="http://www.themackpage.com/2009/05/27/making-a-dynamic-pageviewer-web-part-using-requestquerystring/" target="_blank">Passing Through the Entire Query String</a></p>
<p><a href="http://www.themackpage.com/2009/05/27/making-a-dynamic-pageviewer-web-part-using-requestquerystring-redux/" target="_blank">Passing Through a Single Parameter in the Query String</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2009/06/23/two-helpful-web-parts-for-free/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Software You Need &#8211; AXIGEN Mail Server</title>
		<link>http://www.themackpage.com/2009/06/01/the-software-you-need-%e2%80%93-axigen-mail-server/</link>
		<comments>http://www.themackpage.com/2009/06/01/the-software-you-need-%e2%80%93-axigen-mail-server/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 14:16:17 +0000</pubDate>
		<dc:creator>Joe Mack</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.themackpage.com/2009/06/01/the-software-you-need-%e2%80%93-axigen-mail-server/</guid>
		<description><![CDATA[&#160;
If you are like me and do a lot of demos, especially ones that are running within a virtual environment (Virtual PC, VMWare Server, etc.) you have probably struggled with the best way to demonstrate the e-mail capabilities of whatever you are going to demo.&#160; In my case, Microsoft SharePoint is what I am trying [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>If you are like me and do a lot of demos, especially ones that are running within a virtual environment (Virtual PC, VMWare Server, etc.) you have probably struggled with the best way to demonstrate the e-mail capabilities of whatever you are going to demo.&#160; In my case, Microsoft SharePoint is what I am trying to show, and although there are a few integration touch points only present in Microsoft Exchange, it is a resource hog and kind of a pain to install and maintain, especially if you are not an Exchange administrator.</p>
<p>Enter AXIGEN mail server.&#160; First things first, I have never played around with the “pay” versions of AXIGEN, but according to their web site, the free “Office Edition” is essentially their full-featured product, with a restriction of 5 users and 1 domain…more than enough for a small office, or a demo VPC or VM.</p>
<p>On their web site, they claim that you will have a 10-minute install, which is true…although if you are going to install and use their Active Directory extension, you can probably add another 5 minutes or so.&#160; All told, the very first time I used it, it took around 20 minutes from the time I started the download until I was up and running, with integration to my Windows Server 2003 Domain (Active Directory) and robust full-featured web mail running on a custom port of my choosing.&#160; The second time I set it up, it took me all of 6 or 7 minutes, start to finish.</p>
<p>I have not played around with AXIGEN versions for any other operating system than Windows, but if my experience on Windows is typical of how it works on other operating systems, then you should have nothing to worry about.</p>
<p>I cannot say enough positive things about this little product.&#160; In fact, some time in the next few months, Mack is going to start bringing a lot of his stuff “in house”, as in having a home office with one or 2 “server class” machines, getting a block of static IP addresses, and starting to do a lot of my own hosting for certain domains that I manage, including e-mail.&#160; After my first exposure to AXIGEN, Microsoft would probably have to pay me to install and use Exchange.</p>
<p>Feel free to download the product and try it out yourself.&#160; You will NOT be disappointed.</p>
<p><a href="http://www.axigen.com" target="_blank">http://www.axigen.com</a></p>
<p>One more thing I would be remiss if I did not mention – it installs and runs on non-server Windows operating systems as well.&#160; Couple AXIGEN with Bamboo Solutions’ <a href="http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx" target="_blank">WssOnVista</a>, and I can do a full-featured demo within my host operating system, instead of even worrying about Virtual PC or VM Ware.&#160; Now THAT’S something worth telling people about!</p>
<p><span style="font-family: trebuchet ms; font-size: 7pt"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.themackpage.com/2009/06/01/the-software-you-need-%e2%80%93-axigen-mail-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
