<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Keith Richie</title>
	<atom:link href="http://blog.krichie.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.krichie.com</link>
	<description>Random musings</description>
	<lastBuildDate>Wed, 30 May 2012 16:08:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.krichie.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/3619741251beccd2366b17c7698737c6?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Keith Richie</title>
		<link>http://blog.krichie.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.krichie.com/osd.xml" title="Keith Richie" />
	<atom:link rel='hub' href='http://blog.krichie.com/?pushpress=hub'/>
		<item>
		<title>Music Works In Progress</title>
		<link>http://blog.krichie.com/2012/04/05/music-works-in-progress/</link>
		<comments>http://blog.krichie.com/2012/04/05/music-works-in-progress/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 12:52:20 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/?p=324</guid>
		<description><![CDATA[Over the last two years or so, I’ve been slowly working on new music.&#160; I mean it’s been literally over 4 years since I released La Famille Du Solénoïde, and that took a good year and a half to wrap up. I’m struggling to stay with a consistent theme for this one, and I don’t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=324&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the last two years or so, I’ve been slowly working on new music.&#160; I mean it’s been literally over 4 years since I released <a title="http://www.amazon.com/gp/product/B0019UQB9Y/ref=sr_1_album_16_rd?ie=UTF8&amp;child=B0019UJ7W2&amp;qid=1333629289&amp;sr=1-16" href="http://www.amazon.com/gp/product/B0019UQB9Y/ref=sr_1_album_16_rd?ie=UTF8&amp;child=B0019UJ7W2&amp;qid=1333629289&amp;sr=1-16">La Famille Du Solénoïde</a>, and that took a good year and a half to wrap up.</p>
<p>I’m struggling to stay with a consistent theme for this one, and I don’t want it to be another Sidetracks release with stuff that just didn’t fit into any one thing.</p>
<p>I have, however, released a couple of singles I felt were ready for prime time, and those were:</p>
<ul>
<li><a href="http://www.amazon.com/Little-Angels/dp/B0053YEYHI/ref=sr_shvl_album_1?ie=UTF8&amp;qid=1333629487&amp;sr=301-1">Little Angels</a></li>
<li><a href="http://www.amazon.com/Missing-You-Between-Lucid-Dreams/dp/B003TWIR0G/ref=sr_shvl_album_1?ie=UTF8&amp;qid=1333629509&amp;sr=301-1">Missing you between lucid dreams.</a></li>
</ul>
<p>Both of the above tunes, just kinda fell into place.</p>
<p>But the others, I’m just not ready to call them done.</p>
<p>One in particular is <a href="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3">Sea Dragon</a>.&#160; It’s nearly two years old itself, but I’m just not done with it.</p>
<p>I do plan on getting back in the home studio this weekend and trying to wrap up the following three tunes:</p>
<ul>
<li><a href="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3">Sea Dragon</a></li>
<li><a href="http://web.indieopolis.net/newstuff/Homeless.mp3">Homeless</a></li>
<li><a href="http://web.indieopolis.net/newstuff/Father%20Time.mp3">Father Time</a></li>
</ul>
<p>I’d like to get them to a state where I can release them as singles this weekend.&#160; They may change slightly before the full release of the CD, but at least they’ll be at a point where I’d like to call them the “Official” initial versions.</p>
<p>And lastly, one that has potential, but I’m just not sure where to take it</p>
<ul>
<li><a href="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3">Over the Horizon</a></li>
</ul>
<p>Over the Horizon is turning into more of a long set with at least 2-3 segments.&#160; Starting off mostly ambient, but turning into something a bit more classic Berlin School.&#160; If I finish this monstrosity, it will probably be the CD’s center track.</p>
<p>I’d love to hear your feedback on the current versions of these songs if you have the time. Simply click their links and give them a listen!&#160; These links won’t remain active forever.&#160; So if you’re reading this post 6 months from now, don’t complain that the links are broken.</p>
<p>Keep in mind, I’m not done with them, and know of plenty of spots that need to be “corrected”/reworked/etc., but please make your critique anyways <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://krichie.files.wordpress.com/2012/04/wlemoticon-smile.png?w=600" />.&#160; Especially Over The Horizon.&#160; It tends to drag on the last 7 minutes, but that’s where I’m stuck with it. <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://krichie.files.wordpress.com/2012/04/wlemoticon-smile.png?w=600" /></p>
<p>Thanks a million!</p>
<p> &#8211; Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=324&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2012/04/05/music-works-in-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Homeless.mp3" length="12837514" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Homeless.mp3" length="12837514" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Homeless.mp3" length="12837514" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Father%20Time.mp3" length="9808146" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Father%20Time.mp3" length="9808146" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Father%20Time.mp3" length="9808146" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Father%20Time.mp3" length="9808146" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Father%20Time.mp3" length="9808146" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Over%20The%20Horizon.mp3" length="35618798" type="audio/mpeg" />
<enclosure url="http://web.indieopolis.net/newstuff/Sea%20Dragon.mp3" length="8248613" type="audio/mpeg" />
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Item Level Security means nothing to the BLOB Cache with anonymous access</title>
		<link>http://blog.krichie.com/2012/04/02/sharepoint-item-level-security-means-nothing-to-the-blob-cache-with-anonymous-access/</link>
		<comments>http://blog.krichie.com/2012/04/02/sharepoint-item-level-security-means-nothing-to-the-blob-cache-with-anonymous-access/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 16:20:38 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/?p=316</guid>
		<description><![CDATA[Now hold your horses, you’re saying “Well duh, it’s anonymous access” but follow closely, I’m talking about item level security on items where you have REMOVED Anonymous access.&#160; I’m going to show you how security is enforced with default SharePoint security, but broken when the BLOB Cache is enabled. I ran across this issue the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=316&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now hold your horses, you’re saying “Well duh, it’s anonymous access” but follow closely, I’m talking about item level security on items where you have <strong>REMOVED Anonymous access</strong>.&#160; I’m going to show you how security is enforced with default SharePoint security, but broken when the BLOB Cache is enabled.</p>
<p>I ran across this issue the other day while working with one of my customers. Initially I was thinking this was a misconfiguration in their environment as it was pretty complex. To eliminate the possibility of it being a configuration issue in their environment, I setup a very simple repro in my lean SharePoint 2010 environment.</p>
<p>In a nutshell, with BLOB Caching enabled, it’s not guaranteed that individually secured items that do <b>NOT</b> have anonymous access won’t be served up to requests if they reside in a list/document library that allows Anonymous access. The steps laid out here, show that someone who does not have rights to a resource can still view documents that they shouldn’t. </p>
<p>Note: If you do <strong>NOT</strong> have the file types defined in the BlobCache element <strong>everything works fine</strong>. And, if you <strong>DO NOT have the BLOB Cache</strong> enabled, <strong>normal SharePoint security works just fine</strong>.</p>
<p>Let me add the caveat that it’s probably not a good idea to put items such as word/excel/pdf etc in the BLOB Cache, but some people have reason to do so. </p>
<p>Special thanks to Sean McDonough (<a href="http://sharepointinterface.com/">http://sharepointinterface.com/</a>) and Todd Klindt (<a href="http://www.toddklindt.com/blog/default.aspx">http://www.toddklindt.com/blog/default.aspx</a>) for letting me bounce some thoughts off of them, and their assistance with making sure I wasn’t going crazy J.</p>
<h2>The Environment</h2>
<p>· Windows Server 2008 R2</p>
<p>· SQL 2008 R2</p>
<p>· SharePoint 2010 Server with Service Pack 1 applied.</p>
<h2>Steps to reproduce behavior</h2>
<p>First we’ll initialize Anonymous access for the web application and site collections we’ll be testing on.</p>
<h3>Ensure that you have a web application that has Anonymous Access enabled.</h3>
<p>Navigate to <b>Application Management</b> in Central Administration, then <b>Manage web applications </b>under the <b>Web Applications section</b>. Then select the web application of choice and select the <b>Authentication Providers</b> button on the ribbon.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image002.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image002" border="0" alt="clip_image002" src="http://krichie.files.wordpress.com/2012/04/clip_image002_thumb.png?w=628&h=399" width="628" height="399" /></a></p>
<p>Choose the zone you wish to configure,</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image003.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image003" border="0" alt="clip_image003" src="http://krichie.files.wordpress.com/2012/04/clip_image003_thumb.png?w=511&h=157" width="511" height="157" /></a></p>
<p>Ensure <b>Enable anonymous access</b> is checked on in the <b>Anonymous Access</b> section.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image004.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image004" border="0" alt="clip_image004" src="http://krichie.files.wordpress.com/2012/04/clip_image004_thumb.png?w=514&h=440" width="514" height="440" /></a></p>
<h3><strong>Create a Site Collections and enable Anonymous Access at the site level.</strong></h3>
<p>For this example, I utilized the following naming convention on my site.</p>
<p>1 Site collection based on the Team Site ( A plain vanilla SharePoint site) <a href="http://extranet.jupiter.local/sites/team">http://extranet.jupiter.local/sites/team</a></p>
<h4>For the site collection perform the following steps. (Note that the screen shots are showing a publishing portal, but the steps are the same for a plain team site.)</h4>
<p>Select <b>Site Permissions</b> from the Site Actions button.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image006.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image006" border="0" alt="clip_image006" src="http://krichie.files.wordpress.com/2012/04/clip_image006_thumb.png?w=628&h=407" width="628" height="407" /></a></p>
<p>Select the <b>Anonymous Access</b> button on the Ribbon.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image008.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image008" border="0" alt="clip_image008" src="http://krichie.files.wordpress.com/2012/04/clip_image008_thumb.png?w=628&h=408" width="628" height="408" /></a></p>
<p>Select <b>Entire Web site</b> from the choices on the Anonymous Access dialog.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image009.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image009" border="0" alt="clip_image009" src="http://krichie.files.wordpress.com/2012/04/clip_image009_thumb.png?w=511&h=379" width="511" height="379" /></a></p>
<p>The resulting permissions list for the site will then look similar to the following on a publishing site.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image011.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image011" border="0" alt="clip_image011" src="http://krichie.files.wordpress.com/2012/04/clip_image011_thumb.png?w=628&h=405" width="628" height="405" /></a></p>
<p>At this point the default document libraries in the sites already have Anonymous Access enabled (since they are inheriting from the site (web) level. For a publishing site, the default document library is called “Documents” for a team site, it’s called “Shared Documents”. Just noting it when we get into the details of the ULS logs etc. My troubleshooting on this issue was initially on a publishing site, so there may be inclusions of that traffic in the details.</p>
<p>Now, it doesn’t matter if you have a folder hierarchy in the document libraries or not, as the root of the problem stems from checking at the list/document library level for Anonymous access, but we’re going to mix it up a bit by creating a subfolder in our document library and breaking inheritance on it as well, just to show the depth of the problem.</p>
<h3>Setting up our document/folder hierarchy. </h3>
<p>Perform the following steps in the “Shared Documents” folder on the team site.</p>
<p>Navigate to the document library and select <b>Documents</b> from <b>Library Tools</b>. Then select the <b>New Folder</b> button on the ribbon.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image013.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image013" border="0" alt="clip_image013" src="http://krichie.files.wordpress.com/2012/04/clip_image013_thumb.png?w=627&h=410" width="627" height="410" /></a></p>
<p>Name the new folder “secure” and select save.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image014.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image014" border="0" alt="clip_image014" src="http://krichie.files.wordpress.com/2012/04/clip_image014_thumb.png?w=527&h=334" width="527" height="334" /></a></p>
<p>From the drop down for the new folder, select Manage Permissions.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image016.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image016" border="0" alt="clip_image016" src="http://krichie.files.wordpress.com/2012/04/clip_image016_thumb.png?w=628&h=407" width="628" height="407" /></a></p>
<p>Select the <b>Stop Inheriting Permissions</b> button on the ribbon.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image018.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image018" border="0" alt="clip_image018" src="http://krichie.files.wordpress.com/2012/04/clip_image018_thumb.png?w=628&h=405" width="628" height="405" /></a></p>
<p>The end result of the permissions for the folder will now show that Anonymous users do not have access, and any new documents introduced into this folder will thus use the permissions of the folder for their security.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image020.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image020" border="0" alt="clip_image020" src="http://krichie.files.wordpress.com/2012/04/clip_image020_thumb.png?w=628&h=409" width="628" height="409" /></a></p>
<p><em>Important, if you do this on a publishing site, be sure you “<b>APPROVE</b>” the new “<b>secure</b>” folder so it’s visible to authenticated users.</em></p>
<p>Now let’s create some test files. The type of file doesn’t matter to reproduce the problem. It’s just a matter of that file extension being in the BlobCache setting in the web config. For purposes of my demonstration, I’m just going to create two simple text files. One called “unsecure.txt” and one called “secure.txt”</p>
<p>I have uploaded the unsercure.txt file to the root of the document library, and have uploaded the secure.txt file to the secure folder within the document library.</p>
<p><em>Important, on a publishing site, be sure you <b>Check</b> In/<b>Publish</b> and <b>Approve</b> the documents!</em></p>
<p>For the <b>secure.txt</b> document, also stop inheriting permissions from its parent. It’s currently inheriting from the secure folder, but let’s go ahead and give it item level security as well.</p>
<h3>Showing how SharePoint Security Works as expected</h3>
<p>Now let’s navigate to the site as an anonymous user, and you’ll see that we CAN navigate to the root of the document libraries, but we can NOT navigate to the secure folder in the libraries (nor see them) anonymously.</p>
<p>Now try to browse directly to the individual files. (Yes, you DO need to know the exact url to the file to show the problem, but how many times does that happen in an email forward or copy where you’re given the url to a file you shouldn’t have access too J).</p>
<p>For our test purposes, here are the direct URL’s to the files</p>
<p><a href="http://extranet.jupiter.local/sites/team/Shared%20Documents/unsecure.txt">http://extranet.jupiter.local/sites/team/Shared%20Documents/unsecure.txt</a></p>
<p><a href="http://extranet.jupiter.local/sites/team/Shared%20Documents/secure/secure.txt">http://extranet.jupiter.local/sites/team/Shared%20Documents/secure/secure.txt</a></p>
<p>What you’ll notice is that as an anonymous user, you can browse directly and view/download the unsecure.txt files, but <b>NOT</b> the secure.txt files which are expected behaviors. Everything is working like a charm. You know that your files that do NOT have anonymous access cannot be viewed by folks who should NOT be able to view them. The SharePoint security/authorization structure is working perfectly.</p>
<p>(<b>Note</b>: As I was preparing this, I was UNABLE to even view the root of the “Documents” folder in a Publishing site even though the document library DOES in fact allow anonymous access. This is different from the behavior of the team site, but that’s a whole different problem in itself, and I’ll post on that one separately. The key is that the unsecure.txt file CAN be viewed anonymously.)</p>
<h3>Showing how SharePoint Security breaks with the BLOB Cache</h3>
<p>Now, let’s completely break our security system by enabling the BlobCache.</p>
<p>If you want to read a good article on using the BLOB Cache in your sharepoint environment, check out Seans’ post here: <a href="http://sharepointinterface.com/2012/03/12/do-you-know-whats-going-to-happen-when-you-enable-the-sharepoint-blob-cache/">http://sharepointinterface.com/2012/03/12/do-you-know-whats-going-to-happen-when-you-enable-the-sharepoint-blob-cache/</a></p>
<p>Edit the web.config for this web application, and find the BlobCache entry, and enable.</p>
<p>By default, the BlobCache element in the web.config will look as so:</p>
<p>&lt;BlobCache location=&quot;C:\BlobCache.14&quot; path=&quot;\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$&quot; maxSize=&quot;10&quot; enabled=&quot;false&quot; /&gt;</p>
<p>To enable it, we set the enabled attribute to true rather than false. Now, this alone isn’t going to cause the problem, unless one of the documents you’re trying to keep secure is one of the file types listed in the path attribute. For instance, if the files you are trying to secure are mp3/mov files etc. the problem would in fact present itself. So in order to show our problem, let’s also add the txt file extension to the path attribute. The end result is a BlobCache element that looks similar to the following:</p>
<p>&lt;BlobCache location=&quot;C:\BlobCache.14&quot; path=&quot;\.(<b>txt</b>|gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$&quot; maxSize=&quot;10&quot; enabled=&quot;<b>true</b>&quot; /&gt;</p>
<p>Clear your browser cache or use InPrivate browsing, and refresh the file at <a href="http://extranet.jupiter.local/sites/team/Shared%20Documents/unsecure.txt">http://extranet.jupiter.local/sites/team/Shared%20Documents/unsecure.txt</a></p>
<p>The file should of course open, but if you look at the folder hierarchy in the BlobCache folder you setup in the web.config, you’ll notice the file is now in the cache.</p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image022.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image022" border="0" alt="clip_image022" src="http://krichie.files.wordpress.com/2012/04/clip_image022_thumb.png?w=628&h=356" width="628" height="356" /></a></p>
<p>Now let’s browse to the secure.txt file which does NOT allow anonymous users access. </p>
<p>Be sure to clear your browser cache so that it does in fact make a request to the server for the file.</p>
<p><a href="http://extranet.jupiter.local/sites/team/Shared%20Documents/secure/secure.txt">http://extranet.jupiter.local/sites/team/Shared%20Documents/secure/secure.txt</a></p>
<p>You MAY get prompted initially for credentials, but if so just hit cancel and refresh</p>
<p>Whoa! An anonymous user is now able to see a document <strong>you THOUGHT was secure!</strong></p>
<p><a href="http://krichie.files.wordpress.com/2012/04/clip_image024.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="clip_image024" border="0" alt="clip_image024" src="http://krichie.files.wordpress.com/2012/04/clip_image024_thumb.png?w=628&h=350" width="628" height="350" /></a></p>
<p>Even if you clear the cache and do an iisreset, the problem will still persist.</p>
<p>Run the following commands in powershell to clear the blobcache (Changing the url to your own of course) then do an IIS reset.</p>
<p>$webApp = Get-SPWebApplication &quot;http://extranet.jupiter.local&quot;</p>
<p>[Microsoft.SharePoint.Publishing.PublishingCache]::FlushBlobCache($webApp)</p>
<p>If you now go back and disable the BlobCache (enabled=”false”) everything will start working for you. You’ll get a 401 unauthorized response as you would expect.</p>
<h3>Solution/Workaround</h3>
<p>Now obviously the quick solution/workaround to this problem is to NOT include document types that may have security on them in the list of document types on the path attribute of the BlobCache. Especially if the performance improvements by using the Blobcache is important to your environment.</p>
<p>After poking around using reflection, it appears that with BLOB Caching, the only check when a resource is requested is at the list level. If the Caching layer sees that the list allows anonymous access, requests to the resource are cached and thus served to the end user.</p>
<h3>What’s the correct behavior?</h3>
<p>So this begs the question: “Which algorithm is right?”</p>
<p>1. Does SharePoint &quot;officially&quot; support per-item security in a list marked for anonymous access? If so, the BLOB Cache behavior is wrong.</p>
<p>2. If the BLOB Cache behavior is officially &quot;right&quot; according to Microsoft, then SharePoint itself isn&#8217;t properly handling permission checks (and should be allowing access).</p>
<p>Either way, something needs to be fixed/changed, and I would highly consider you checking your environment for this little “Gotcha”.</p>
<p>Hope this helps!</p>
<p>- Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/316/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=316&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2012/04/02/sharepoint-item-level-security-means-nothing-to-the-blob-cache-with-anonymous-access/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image002_thumb.png" medium="image">
			<media:title type="html">clip_image002</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image003_thumb.png" medium="image">
			<media:title type="html">clip_image003</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image004_thumb.png" medium="image">
			<media:title type="html">clip_image004</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image006_thumb.png" medium="image">
			<media:title type="html">clip_image006</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image008_thumb.png" medium="image">
			<media:title type="html">clip_image008</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image009_thumb.png" medium="image">
			<media:title type="html">clip_image009</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image011_thumb.png" medium="image">
			<media:title type="html">clip_image011</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image013_thumb.png" medium="image">
			<media:title type="html">clip_image013</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image014_thumb.png" medium="image">
			<media:title type="html">clip_image014</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image016_thumb.png" medium="image">
			<media:title type="html">clip_image016</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image018_thumb.png" medium="image">
			<media:title type="html">clip_image018</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image020_thumb.png" medium="image">
			<media:title type="html">clip_image020</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image022_thumb.png" medium="image">
			<media:title type="html">clip_image022</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2012/04/clip_image024_thumb.png" medium="image">
			<media:title type="html">clip_image024</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint PeopleEditor.ResolvedEntities always zero when control is disabled</title>
		<link>http://blog.krichie.com/2012/03/14/peopleeditor-resolvedentities-always-zero-when-control-is-disabled/</link>
		<comments>http://blog.krichie.com/2012/03/14/peopleeditor-resolvedentities-always-zero-when-control-is-disabled/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 18:49:17 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/?p=284</guid>
		<description><![CDATA[I’ve been trying to track down this mystery in a project I’m working on for some time. In a nutshell, we’re using the Microsoft.SharePoint.WebControls.PeopleEditor/picker for resolving SharePoint users in our custom web parts like any good SharePoint dev might want to do.&#160; We collect the user data and various other important stuff, and save our [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=284&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I’ve been trying to track down this mystery in a project I’m working on for some time. </p>
<p>In a nutshell, we’re using the Microsoft.SharePoint.WebControls.PeopleEditor/picker for resolving SharePoint users in our custom web parts like any good SharePoint dev might want to do.&#160; We collect the user data and various other important stuff, and save our data to a database. We later pull up a page with this same part, edit some data, and update our entries in the database.&#160; Everything is working just great.</p>
<p>Except, sometimes it appears that the User ID’s we’re saving for the users in the people editors are getting lost, but only SOMETIMES.&#160; I would see it, then not be able to reproduce it and move on with other important matters and place it on the backburner.</p>
<p>So let’s start with some code samples of what’s going on.</p>
<p>This section of code is what we use to get the SPUser.ID from the PeopleEditor/Picker before saving it to the database (IF a user is selected of course).</p>
<pre>int primaryContactID =0;

if (PrimaryContactEditor.ResolvedEntities.Count &gt; 0); 
{
  Microsoft.SharePoint.WebControls.PickerEntity entity = 
    (Microsoft.SharePoint.WebControls.PickerEntity)PrimaryContactEditor.ResolvedEntities[0];
  acctName = entity.EntityData[&quot;AccountName&quot;].ToString();
  SPUser user = SPContext.Current.Web.EnsureUser(acctName);
  primaryContactID = user.ID;
}</pre>
<p>When the part is loaded, we load up the editor to show the user as being preselected.</p>
<pre>    
private void PopulatePickerControl(Microsoft.SharePoint.WebControls.PeopleEditor pe, int userID)
{
   if (userID &gt; 0)
   {
       SPSecurity.RunWithElevatedPrivileges(delegate()
       {
           SPUser user = 
             SPContext.Current.Web.SiteUsers.GetByID(userID);
           Microsoft.SharePoint.WebControls.PickerEntity entity = 
             new Microsoft.SharePoint.WebControls.PickerEntity();
           entity.Key = user.LoginName;
           entity = pe.ValidateEntity(entity);
           if (entity != null)
           {
               System.Collections.ArrayList list = new System.Collections.ArrayList();
               list.Add(entity);
               pe.UpdateEntities(list);
           }
       });
  }
}</pre>
<p>Pretty straight forward stuff. and everything works perfectly.&#160; The same code to get the users account, ensure they are placed into the web, and the ID is retrieved works flawlessly every single time.</p>
<p>Until…</p>
<p>The PeopleEditor is disabled to prevent editing.</p>
<p>And we’ve got good reasons for doing so.&#160; In this case, some users should never be able to change the users selected from the people editors/pickers.&#160; At this point, they are merely there for presentation purposes, but some users can. And those&#160; users may need to change the value.</p>
<p>But, if you set the editor to disabled such as this:</p>
<p>PrimaryContactEditor.Enabled = false;<br />
  <br />&#160;&#160; </p>
<p>Then the ResolvedEntites array will always be zero.&#160; The editor will surely show you’re resolved entities, but this collection will always be empty.</p>
<p>Why? I have no idea.&#160; It makes no sense to me why it should behave this way.</p>
<p> &#8211; Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/284/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=284&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2012/03/14/peopleeditor-resolvedentities-always-zero-when-control-is-disabled/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>
	</item>
		<item>
		<title>Reorder new Content Type fields on the fly</title>
		<link>http://blog.krichie.com/2011/11/10/reorder-new-content-type-fields-on-the-fly/</link>
		<comments>http://blog.krichie.com/2011/11/10/reorder-new-content-type-fields-on-the-fly/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 18:45:15 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/2011/11/10/reorder-new-content-type-fields-on-the-fly/</guid>
		<description><![CDATA[At some point in time you will inevitably need to add a new field to an existing content type programmatically.&#160; For example, adding Lookup column to a Content Type.&#160; You can’t do it within the Content Type CAML if the target list doesn’t exist. It’s common to add the lookup within a FeatureActivated event after [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=268&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At some point in time you will inevitably need to add a new field to an existing content type programmatically.&#160; For example, adding Lookup column to a Content Type.&#160; You can’t do it within the Content Type CAML if the target list doesn’t exist. It’s common to add the lookup within a FeatureActivated event after the list is created.</p>
<p>This is accomplished quite easily using the Add method of the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcontenttype.fieldlinks.aspx">FieldLinks</a> property on the Content Type itself.&#160; The draw back is that the new field is always added to the end of the list, and from a presentation standpoint, this may not be desired.</p>
<p>For example, adding lookups to the content type like so:</p>
<p>&#160;</p>
<pre>       
private void CreateDigitalReleasesList(SPWeb web)
{
  SPList list = web.Lists.TryGetList(Constants.DigitalReleasesList_Name);
  if (list == null)
  {
    Guid listID = web.Lists.Add(Constants.DigitalReleasesList_UrlName,
      &quot;Used to record Digital Distributor Releases&quot;, 
      SPListTemplateType.GenericList);
    list = web.Lists[listID];
    list.Title = Constants.DigitalReleasesList_Name;
    list.OnQuickLaunch = true;
    list.Update();

    SPList ddList = web.Lists.TryGetList(DistributorsList_Name);
    SPList relList = web.Lists.TryGetList(ReleasesList_Name);

    if (ddList != null &amp;&amp; relList != null)
    {
       SPFieldLookup ddLookup =
         (SPFieldLookup) web.Fields[fieldName_DistributorLookup];
       SPFieldLookup relLookup = 
         (SPFieldLookup) web.Fields[fieldName_ReleaseLookup];

       AddFieldToContentType(web, 
         contentType_DigitalRelease, ddLookup);
       AddFieldToContentType(web, 
         contentType_DigitalRelease, relLookup);
    }


    AssociateContentType(web, Constants.DigitalReleasesList_Name, 
      Types.Constants.contentType_DigitalRelease);
  }
}

public static void AddFieldToContentType(SPWeb web, string contentType, SPField field)
{
  SPContentTypeId ctId = new SPContentTypeId(contentType);
  SPContentType ct = web.ContentTypes[ctId];
  ct.FieldLinks.Add(new SPFieldLink(field));
  ct.Update();
}</pre>
<p>Results in the presentation of the fields at the bottom of the form like so:</p>
<p><a href="http://krichie.files.wordpress.com/2011/11/capture.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Capture" border="0" alt="Capture" src="http://krichie.files.wordpress.com/2011/11/capture_thumb.png?w=446&h=429" width="446" height="429" /></a></p>
<p>&#160;</p>
<p>The solution, is to use the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldlinkcollection.reorder.aspx">Reorder</a> method on the FieldLinks collection, however this requires you to layout the names of each field in the array in the order that you want.&#160; If you were to construct this array using literals, that could easily result in unnecessary maintenance of the code when you need to make a change to the column names, etc. during development or updates.</p>
<p>It would be easier to just specify the order of the new field at the time that you link it and be completely generic and frankly agnostic of the field names as much as possible.&#160; Therefore here’s a modified version of the sample code exposed above. Pay particular attention to the modification of AddFieldToContentType.</p>
<pre>       
private void CreateDigitalReleasesList(SPWeb web)
{
  SPList list = web.Lists.TryGetList(Constants.DigitalReleasesList_Name);
  if (list == null)
  {
    Guid listID = web.Lists.Add(Constants.DigitalReleasesList_UrlName,
      &quot;Used to record Digital Distributor Releases&quot;, 
      SPListTemplateType.GenericList);
    list = web.Lists[listID];
    list.Title = Constants.DigitalReleasesList_Name;
    list.OnQuickLaunch = true;
    list.Update();

    SPList ddList = web.Lists.TryGetList(DistributorsList_Name);
    SPList relList = web.Lists.TryGetList(ReleasesList_Name);

    if (ddList != null &amp;&amp; relList != null)
    {
       SPFieldLookup ddLookup =
         (SPFieldLookup) web.Fields[fieldName_DistributorLookup];
       SPFieldLookup relLookup = 
         (SPFieldLookup) web.Fields[fieldName_ReleaseLookup];

       AddFieldToContentType(web, 
         contentType_DigitalRelease, ddLookup, 2);
       AddFieldToContentType(web, 
         contentType_DigitalRelease, relLookup, 3);
    }


    AssociateContentType(web, Constants.DigitalReleasesList_Name, 
      Types.Constants.contentType_DigitalRelease);
  }
}

public static void AddFieldToContentType(SPWeb web, string contentType, SPField field, int order)
{
  SPContentTypeId ctId = new SPContentTypeId(contentType);
  SPContentType ct = web.ContentTypes[ctId];

  // Generate a string array with the existing order of the fields.
  List fieldOrder = new List();
  for (int i = 0; i &lt; ct.FieldLinks.Count; i++)
  {
    fieldOrder.Add(ct.FieldLinks[i].Name);
  }

  // Add the new field.
  ct.FieldLinks.Add(new SPFieldLink(field));
  ct.Update();

  // Now insert the new field in the proper order.
  // You might think you want to decrement the value of order,
  // since the generic list array is zero based, but the first 
  // item in the array is the actual &quot;ContentType&quot; field
  // so no decrement is necessary.
  fieldOrder.Insert(order, field.InternalName);
  ct.FieldLinks.Reorder(fieldOrder.ToArray());
  ct.Update();
}</pre>
<p>The end result is similar to the following:</p>
<p><a href="http://krichie.files.wordpress.com/2011/11/capture1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Capture" border="0" alt="Capture" src="http://krichie.files.wordpress.com/2011/11/capture_thumb1.png?w=456&h=438" width="456" height="438" /></a></p>
<p>Hope you find this helpful!</p>
<p>- Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/268/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=268&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/11/10/reorder-new-content-type-fields-on-the-fly/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2011/11/capture_thumb.png" medium="image">
			<media:title type="html">Capture</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2011/11/capture_thumb1.png" medium="image">
			<media:title type="html">Capture</media:title>
		</media:content>
	</item>
		<item>
		<title>When death finds you</title>
		<link>http://blog.krichie.com/2011/10/31/when-death-find-you/</link>
		<comments>http://blog.krichie.com/2011/10/31/when-death-find-you/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 17:53:40 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
		
		<guid isPermaLink="false">https://krichie.wordpress.com/2011/10/31/when-death-find-you/</guid>
		<description><![CDATA[I lie waiting throughout the year, For that one day when I rise, and screams are what I hear. Rising from my grave; ripping through the webbed mesh, As worms burrow through my aging dead flesh. My sinew is your fear, as I wait for you to sleep, Rotting flesh and dripping blood are the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=261&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://krichie.files.wordpress.com/2011/10/death-ipad-wallpaper.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;margin:5px 5px 0 0;" title="death-ipad-wallpaper" border="0" alt="death-ipad-wallpaper" align="left" src="http://krichie.files.wordpress.com/2011/10/death-ipad-wallpaper_thumb.jpg?w=244&h=244" width="244" height="244" /></a>I lie waiting throughout the year,</p>
<p>For that one day when I rise, and screams are what I hear.</p>
<p>Rising from my grave; ripping through the webbed mesh,</p>
<p>As worms burrow through my aging dead flesh.</p>
<p>My sinew is your fear, as I wait for you to sleep,</p>
<p>Rotting flesh and dripping blood are the companions that I keep.</p>
<p>I creep to your home, crawling through the night,</p>
<p>I sneak my way in, and slowly turn out the light.</p>
<p>Your fear of things that go bump in the night,</p>
<p>Leads me to you, drawn close by your fright.</p>
<p>Rotting flesh, crackling bones, and all things of gore,</p>
<p>Fill your dreams, as I slip through your darkened door.</p>
<p>A deathly cold breath, a smell rancid and stale,</p>
<p>Your eyes slowly open, your life leaves in your exhale.</p>
<p>I salivate as I drag you back to my hole,</p>
<p>And I savor, the sweet taste of your innocent soul.</p>
<p>&#160;</p>
<p>Happy Halloween!</p>
<p>Be safe folks!</p>
<p>- Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/261/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=261&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/10/31/when-death-find-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2011/10/death-ipad-wallpaper_thumb.jpg" medium="image">
			<media:title type="html">death-ipad-wallpaper</media:title>
		</media:content>
	</item>
		<item>
		<title>La Famille Du Sol&#233;no&#239;de &#8211;A Review</title>
		<link>http://blog.krichie.com/2011/10/17/la-famille-du-solnode-a-review/</link>
		<comments>http://blog.krichie.com/2011/10/17/la-famille-du-solnode-a-review/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 11:50:10 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/2011/10/17/la-famille-du-solnode-a-review/</guid>
		<description><![CDATA[Sean McDonough recently posted a review of my La Famille Du Solénoïde release on Amazon.&#160; Excerpt: “I&#8217;ve been listening to this release for the last few weeks while I&#8217;ve been working, and I&#8217;ve enjoyed it greatly. I continue to find myself stopping to listen to sections and segments that catch my attention.” Thanks for the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=254&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sean McDonough recently <a href="http://www.amazon.com/review/RFCZUPV7ICQNS/ref=cm_sw_r_fa_asr_e5NHC.0MBBYM1">posted a review</a> of my <a href="http://www.amazon.com/La-Famille-Du-Sol%C3%A9no%C3%AFde/dp/B0019UQB9Y/ref=cm_rdp_product">La Famille Du Solénoïde</a> release on Amazon.&#160; </p>
<p>Excerpt:</p>
<blockquote><p>“I&#8217;ve been listening to this release for the last few weeks while I&#8217;ve been working, and I&#8217;ve enjoyed it greatly. I continue to find myself stopping to listen to sections and segments that catch my attention.”</p>
</blockquote>
<p>Thanks for the kind words Sean!</p>
<p><a href="http://www.amazon.com/review/RFCZUPV7ICQNS/ref=cm_sw_r_fa_asr_e5NHC.0MBBYM1">Read the entire review here!</a> </p>
<p><a href="http://www.amazon.com/La-Famille-Du-Sol%C3%A9no%C3%AFde/dp/B0019UQB9Y/ref=cm_rdp_product">La Famille Du Solénoïde</a> (and other releases) are also available on the majority of Digital Music services such as (but not limited to)</p>
<ul>
<li>Zune</li>
<li>iTunes</li>
<li>Amazon MP3</li>
<li>Spotify</li>
<li>Last.FM</li>
<li>Rhapsody</li>
</ul>
<p>Enjoy!</p>
<p> &#8211; Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/254/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=254&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/10/17/la-famille-du-solnode-a-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>
	</item>
		<item>
		<title>Programmatically waiting on SharePoint Solutions to deploy</title>
		<link>http://blog.krichie.com/2011/09/02/programmatically-waiting-on-sharepoint-solutions-to-deploy/</link>
		<comments>http://blog.krichie.com/2011/09/02/programmatically-waiting-on-sharepoint-solutions-to-deploy/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 18:24:56 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/2011/09/02/programmatically-waiting-on-sharepoint-solutions-to-deploy/</guid>
		<description><![CDATA[I recently had the need to deploy multiple solutions via the object model, but of course had to wait for each solution to successfully deploy before moving to the next, etc.&#160; Another requirement is that I needed a common code base that would work on either SharePoint 2007 or SharePoint 2010.&#160; And of course, needed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=245&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had the need to deploy multiple solutions via the object model, but of course had to wait for each solution to successfully deploy before moving to the next, etc.&#160; Another requirement is that I needed a common code base that would work on either SharePoint 2007 or SharePoint 2010.&#160; And of course, needed to work for a single server installation or a farm.</p>
<p>There are multiple posts out there about interfacing with and examining the running jobs on all servers via the timer service etc., but none of them seemed to work perfectly for me.</p>
<p>One would immediately think just to check SPSolution.Deployed and wait for it to be true before moving on to the next.</p>
<p>In my testing, this works great on SharePoint 2010 in my test environments, but not so well on SharePoint 2007.</p>
<p>For me, I found that not only did I need to check SPSolution.Deployed, but also check SPSolution.JobExists immediately afterwards.&#160; I couldn’t just rely on SPSolution.JobExists, because at times it would be false right after adding the solution (Perhaps because the Job had yet to actually start).</p>
<p>So for me, it was best to first wait until SPSolution.Deployed was true, then wait for SPSolution.JobExists to be false.</p>
<p>This seemed like the simplest method for ensuring the solution was deployed and complete before moving on.</p>
<p>So here’s a bit of a code snippet to show you basically what I’m doing.&#160; The following code assumes you have no specific web application you&#8217;re deploying to</p>
<pre>SPSolution solution = 
  SPFarm.Local.Solutions.Add(&quot;pathtomysolution.wsp&quot;);

solution.Deploy(DateTime.Now, true, true);
bool deployed = solution.Deployed;

while (!deployed)
{
  Thread.Sleep(1000);
  deployed = solution.Deployed;
}

bool jobexists = solution.JobExists;

while (jobexists)
{
  Thread.Sleep(1000);
  jobexists = solution.JobExists;
}</pre>
<p>&#160;</p>
<p>With this, I don’t have to muck around with poking at the timer job service on every single server in the farm etc.</p>
<p>I’m curious how this might work in your environments and hope this helps!</p>
<p> &#8211; Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=245&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/09/02/programmatically-waiting-on-sharepoint-solutions-to-deploy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>
	</item>
		<item>
		<title>SPIEFolder for SharePoint 2007/2010</title>
		<link>http://blog.krichie.com/2011/08/26/spiefolder-for-sharepoint-20072010/</link>
		<comments>http://blog.krichie.com/2011/08/26/spiefolder-for-sharepoint-20072010/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 23:13:11 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[My Free Tools]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/2011/08/26/spiefolder-for-sharepoint-20072010/</guid>
		<description><![CDATA[Due to popular demand, I have now included a compiled version of SPIEFolder 2.0 for Windows SharePoint Services 3.0/Microsoft Office SharePoint Server 2007 along with SharePoint Foundation 2010/SharePoint Server 2010 in the download package for SPIEFolder. For details on this version, see my previous blog post here Hope you enjoy! &#8211; Keith<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=242&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Due to popular demand, I have now included a compiled version of SPIEFolder 2.0 for Windows SharePoint Services 3.0/Microsoft Office SharePoint Server 2007 along with SharePoint Foundation 2010/SharePoint Server 2010 in the <a href="http://blog.krichie.com/my-sharepoint-tools/#spiefolder" target="_blank">download package for SPIEFolder</a>.</p>
<p>For details on this version, see my <a href="http://blog.krichie.com/2011/06/02/spiefolder-for-sharepoint-2010/" target="_blank">previous blog post here</a> </p>
<p>Hope you enjoy!</p>
<p> &#8211; Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/242/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=242&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/08/26/spiefolder-for-sharepoint-20072010/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>
	</item>
		<item>
		<title>You are the weakest link! Not really, I&#8217;m just doing Social Service cleanup.</title>
		<link>http://blog.krichie.com/2011/08/18/you-are-the-weakest-link-not-really-im-just-doing-social-service-cleanup/</link>
		<comments>http://blog.krichie.com/2011/08/18/you-are-the-weakest-link-not-really-im-just-doing-social-service-cleanup/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 18:34:59 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/2011/08/18/you-are-the-weakest-link-not-really-im-just-doing-social-service-cleanup/</guid>
		<description><![CDATA[I once questioned myself all the time about what types of content I would put on my primary blog.&#160; Would it all be technical content? Or would it include personal content also, such as my music, etc.&#160; I finally decided that for my primary blog (http://blog.krichie.com) It would be a mix of both, and I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=238&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I once questioned myself all the time about what types of content I would put on my primary blog.&#160; Would it all be technical content? Or would it include personal content also, such as my music, etc.&#160; I finally decided that for my primary blog (<a href="http://blog.krichie.com">http://blog.krichie.com</a>) It would be a mix of both, and I would use appropriate content tagging so you could easily filter on what you wanted to see.&#160; As well, a lot of folks way back when told me they enjoyed seeing the lighter side of me, so I stood with&#160; that.</p>
<p>If you haven’t visited my blog in a while, you may have noticed that it no longer states “That SharePoint Guy” as it once did.&#160; Instead I just changed it to “Random Musings”. I did that for a couple of reasons:</p>
<ul>
<li>For a long time, I was not even doing much SharePoint work.&#160; It didn’t make sense to proclaim myself as that “SharePoint Guy” any longer.</li>
<li>I’d say 50% of my content has nothing to do with SharePoint.</li>
</ul>
<p>Now this doesn’t mean that I’m not going to continue to post SharePoint content, by all means, when I feel I’ve got something to say about the subject I most certainly will.&#160; The folks that follow me in the SharePoint field there, have done so for a long time, and when I post SharePoint content there, it’s not to win some popularity contest, but to rather share my findings and hopefully help others.&#160; I do however, get a kick on how some of my SharePoint posts are either a) trackbacked, b) found helpful, c) used to answer forum questions, d) completely repurposed and plagiarized at times.</p>
<p>Regardless, I think the new branding represents me better than the last. Which brings me to the subject of this post.&#160; </p>
<blockquote><p><strong>“How does one define the reason behind the use of any given Social Service?”</strong></p>
</blockquote>
<p>I’ve decided over months of debating about it, to clean up my Facebook friends list.&#160; The reason?&#160; I don’t really know half the people in my friends list there.</p>
<p>When I first joined Facebook, literally none of my family or non-technical friends had any presence there.&#160; I joined simply because all of my other SharePoint peeps where there.&#160; I used it as an addition to my “Technical/Professional” presence in the web-sphere.&#160; I would accept almost any friend request from someone in the SharePoint field.</p>
<p>Of course over time, my family and non-technical friends jumped on the bandwagon with Facebook, etc… but I continued to almost just automatically “Add” some one based on their request, because I saw they were a member of the SharePoint community.</p>
<p>Here’s the problem though…I no longer use Facebook as a primary professional/technical representation of me.&#160; It’s completely casual.&#160; Does anyone in the SharePoint field truly get ANY kind of real value from my Facebook page?&#160; I doubt it very seriously, unless it’s simply a note post from my SharePoint blog postings, or twitter copy from a SharePoint related tweet I’ve made.</p>
<p>Another reason, is there is just too much noise in my Facebook feed from people.&#160; Sure, I could utilize custom feeds/lists in Facebook more, but that is just WAY too much trouble to do, to individually select people, remove people, sort those lists etc.&#160; But I DO enjoy leaving the page open, and occasionally seeing interesting tidbits…but I have to filter through a lot of crap, from people I just don’t really know before I see it.</p>
<p>I’ve decided to go ahead and start trimming down my list.&#160;&#160; I made the following post on my wall on Facebook this morning as this:</p>
<blockquote><p><strong>“Hmm, thinking of cleaning up my friends list. I have a lot of people on the list whom have added me simply because they are in my field, but I don&#8217;t really know them. No offense, but if you get removed, don&#8217;t take it personally. It probably means we haven&#8217;t interacted at all since being added. I won&#8217;t be so eager to hit that accept from folks in the future, just because I see your involved in the SharePoint field. Besides, for any real SharePoint content from me, just see my blog.”</strong></p>
</blockquote>
<p>It’s been interesting seeing some of the comments show up, and the emails I’ve gotten going “Why, but why!”</p>
<p>Well, like I said…Don’t take it personally!&#160; I just want to trim it some.&#160; If by chance you get removed, just simply send me another request..BUT when you do, include the reason why you’re requesting?&#160; Is it somewhere along the lines of:</p>
<ul>
<li>Hey, remember me? We met at that SharePoint event back in, blah blah.&#160; I’d like to be added back, because I enjoy seeing your wild and crazy posts”</li>
<li>Hey, we used to work together at Microsoft, or this, or that.</li>
<li>Some other good reason on how I know you, or we’ve interacted with in the past.</li>
</ul>
<p>I’m not opposed to adding you back in, but I can’t remember half the names that are there.&#160; It’s not a YOU thing, it’s a me thing.&#160; If you find my wall posts on Facebook enjoyable, etc, or can give me a reason why we should be friends, by all means, send me a request.</p>
<p>Otherwise, if it’s just because your interested in my SharePoint related stuff, simply follow me on this blog, or twitter.</p>
<p>The bottom line is, I’m no longer using Facebook as one of my primary Professional/Technical content source points.&#160; If I don’t really know you, I don’t see a reason to have you listed.&#160; I don’t need to have 2000 friends on Facebook.</p>
<p>For instance, look at LinkedIn.&#160; I don’t think I have it configured for ANY content consumption from Twitter, etc.&#160; It’s just a standalone professional footprint for me.</p>
<p>As far as Twitter?&#160; I dual purpose it for professional/personal and for the most part, I don’t see a drop in my followers. </p>
<p>Bottom line, for my complete professional representation, I would look to my LinkedIn and Blog sites.&#160; The rest might just be noise for you.</p>
<p>Some may still find this harsh, and I don’t mean it to be that way.&#160; It’s just me re-aligning my social services the way I feel they are best suited.</p>
<p>You are NOT the weakest link <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://krichie.files.wordpress.com/2011/08/wlemoticon-smile.png?w=600" /> I’m just doing some social service cleanup.</p>
<p>I’m curious to how you use the various social services at your disposal?</p>
<p>- Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/238/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=238&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/08/18/you-are-the-weakest-link-not-really-im-just-doing-social-service-cleanup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>

		<media:content url="http://krichie.files.wordpress.com/2011/08/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>Carbon Based Lifeforms&#8211;Music to code by</title>
		<link>http://blog.krichie.com/2011/07/22/carbon-based-lifeformsmusic-to-code-by/</link>
		<comments>http://blog.krichie.com/2011/07/22/carbon-based-lifeformsmusic-to-code-by/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:58:36 +0000</pubDate>
		<dc:creator>Keith Richie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">https://krichie.wordpress.com/2011/07/22/carbon-based-lifeformsmusic-to-code-by/</guid>
		<description><![CDATA[Every once and a while you come across a band that seems to just click with you. It was about this time last year when I discovered Carbon Based Lifeforms (CBL), and I have been completely hooked on them ever since.&#160; In fact, I like a lot of the stuff from the groups signed with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=233&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;float:left;border-top:0;border-right:0;padding-top:0;margin:5px 10px 5px 5px;" border="0" align="left" src="http://userserve-ak.last.fm/serve/500/236162/Carbon+Based+Lifeforms.jpg" width="221" height="221" />Every once and a while you come across a band that seems to just click with you. It was about this time last year when I discovered <a href="http://en.wikipedia.org/wiki/Carbon_Based_Lifeforms" target="_blank">Carbon Based Lifeforms</a> (CBL), and I have been completely hooked on them ever since.&#160; In fact, I like a lot of the stuff from the groups signed with <a href="http://www.ultimae.com/en/composers/index.html" target="_blank">Ultimae</a>, but it’s CBL I sink most of my money into.&#160; It’s been a long time that just about every single release of a given group has moved me the way CBL has.&#160; For me, they are just frakin’ awesome.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>It was a post <a href="http://en.wikipedia.org/wiki/Bassic" target="_blank">Martin Lindhe</a> (a.k.a. Bassic) had posted on his Facebook wall that turned me onto CBL.&#160; It went something to the effect of “Can’t seem to get Interloper by CBL out of constant rotation lately”, or something like that.&#160; So I went and checked out <a href="http://www.amazon.com/Interloper/dp/B003L0NXV4/ref=ntt_mus_dp_dpt_1" target="_blank">Interloper</a> and I was hooked.&#160; I immediately turned back around and swooped up <a href="http://www.amazon.com/World-Of-Sleepers/dp/B000ZST792/ref=pd_sim_dmusic_a_1" target="_blank">World of Sleepers</a> and <a href="http://www.amazon.com/Hydroponic-Garden/dp/B000YOT9XG/ref=pd_sim_dmusic_a_2" target="_blank">Hydroponic Garden</a>.&#160; And I’m dying to get my hands on <a href="http://www.amazon.com/Twentythree/dp/B005DBQZ5U/ref=sr_shvl_album_2?ie=UTF8&amp;qid=1311342493&amp;sr=301-2" target="_blank">Twentythree</a>.</p>
<p>I can honestly say, that at some point during each day when I’m coding, I shuffle up my collection of CBL to code by.</p>
<p>If you are into Ambient Music, I highly recommend you check them out.</p>
<p>I certainly like all their tracks, but probably my favorites are listed below if you want a direct sampling of their music:</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=UtPTvyjtx3g" target="_blank">MOS 6581</a></li>
<li><a href="http://www.youtube.com/watch?v=zrduIntJN10" target="_blank">Interloper</a></li>
<li><a href="http://www.youtube.com/watch?v=v1LjzzyKCLc" target="_blank">Supersede</a></li>
<li><a href="http://www.youtube.com/watch?v=eo_QkSO4AJg" target="_blank">Init</a></li>
<li><a href="http://www.youtube.com/watch?v=DYTRjYC44PU" target="_blank">Frog</a> (Absolutely LOVE this one)</li>
<li><a href="http://www.youtube.com/watch?v=9eyg3QydFhE" target="_blank">Polyrytmi</a></li>
<li><a href="http://www.youtube.com/watch?v=LoKt4vhJ-c0" target="_blank">Abiogenesis</a></li>
<li><a href="http://www.youtube.com/watch?v=IE3UmlvM63Y" target="_blank">Vortex</a></li>
<li><a href="http://www.youtube.com/watch?v=13w3WDaGHTo" target="_blank">Set Theory</a></li>
<li><a href="http://www.youtube.com/watch?v=QF-753xKWC4" target="_blank">Gryning</a></li>
<li><a href="http://www.youtube.com/watch?v=HJe7oT3J798" target="_blank">Betula Pendula</a></li>
</ul>
<p>I hope you enjoy!</p>
<p> &#8211; Keith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/krichie.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/krichie.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/krichie.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/krichie.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/krichie.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/krichie.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/krichie.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/krichie.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.krichie.com&#038;blog=617816&#038;post=233&#038;subd=krichie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.krichie.com/2011/07/22/carbon-based-lifeformsmusic-to-code-by/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd531eeac5e55ea423271560279c7ada?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Keith Richie</media:title>
		</media:content>

		<media:content url="http://userserve-ak.last.fm/serve/500/236162/Carbon+Based+Lifeforms.jpg" medium="image" />
	</item>
	</channel>
</rss>
