<?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>Kyle Noland &#187; Blog</title>
	<atom:link href="http://kylenoland.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://kylenoland.com</link>
	<description>Dallas Website Design and Development</description>
	<lastBuildDate>Wed, 04 Jan 2012 03:09:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Jupiter Chevrolet: How not to sell a car</title>
		<link>http://kylenoland.com/jupiter-chevrolet-how-not-to-sell-a-car/</link>
		<comments>http://kylenoland.com/jupiter-chevrolet-how-not-to-sell-a-car/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 02:42:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=235</guid>
		<description><![CDATA[This is the chat log I had today with Francisco Oguntosin at Jupiter Chevrolet in Garland, Texas. Take notes kids, this is the way to lose a customer and wind up on the internet. Jupiter Chevrolet Inc : Thank you for choosing Jupiter Chevrolet Inc ! System: We have alerted the online representatives that you [...]]]></description>
			<content:encoded><![CDATA[<p>This is the chat log I had today with Francisco Oguntosin at Jupiter Chevrolet in Garland, Texas. Take notes kids, this is the way to lose a customer and wind up on the internet.</p>
<p><strong>Jupiter Chevrolet Inc</strong> : Thank you for choosing Jupiter Chevrolet Inc !<br />
<strong>System</strong>: We have alerted the online representatives that you are waiting. Someone should be with you momentarily.<br />
<strong>System</strong>: A representative has joined the conversation. Compose your message below and then click Send.<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : Hello, How may I help you?<br />
<strong>You</strong>: Hi there. I&#8217;ve sent a couple emails today about your Chevy Cruze inventory<br />
<strong>You</strong>: I&#8217;m about ready to make a decision and purchase today and there are a lot of competitive offers.<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : great<br />
<strong>You</strong>: Can you get me out the door for $14,500 on the silver 2011 LT?<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : best deal is $14.600 plus TTL<br />
<strong>You</strong>: OK. I&#8217;ve already got that deal with only 8k miles on it from another dealer<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : are you still there<br />
<strong>You</strong>: yes. on the phone with another dealer<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : this is an LT<br />
<strong>You</strong>: yes<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : that is a great price for $14,900<br />
<strong>You</strong>: It is. I assume you are talking about Autohause listing, but I&#8217;m talking with a different dealer who is competitive with your offer, has lower miles and is dealer certified<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : we do have a life time warranty (powertrain warranty)<br />
<strong>You</strong>: Yeah, I&#8217;m going to have to go take a look at those other two cars unless you can do something for me to get the price down or find some upgrades or something.<br />
<span style="color: #0000ff;"><strong>Francis Oguntosin</strong></span> : i can asure we are not going to miss your business.<br />
<strong>You</strong>: I don&#8217;t imagine that you will. That&#8217;s a pretty poor attitude to have with a potential customer, especially when you&#8217;re doing it in writing.<br />
<strong>You</strong>: If you haven&#8217;t heard of Ocean Marketing, you might want to Google it. It&#8217;s a cautionary tale of another customer service rep who shot his mouth off on the internet</p>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/jupiter-chevrolet-how-not-to-sell-a-car/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Haystack: an IndexTank client for CodeIgniter 2.0+</title>
		<link>http://kylenoland.com/haystack-an-indextank-client-for-codeigniter-2-0/</link>
		<comments>http://kylenoland.com/haystack-an-indextank-client-for-codeigniter-2-0/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 18:03:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[indextank]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=210</guid>
		<description><![CDATA[IndexTank is a hosted search solution used by some of the largest sites on the web such as Reddit, Twitvid and ZenCoder. It offers some cool features such as Geolocation, fuzzy search, autocomplete, &#8220;Did you mean&#8221; spelling correction, stemming and most importantly, real-time indexing. It&#8217;s a pretty cool service, and did I mention that it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>IndexTank is a hosted search solution used by some of the largest sites on the web such as <a title="Reddit" href="http://reddit.com">Reddit</a>, <a title="Twitvid" href="http://www.twitvid.com">Twitvid</a> and <a title="ZenCoder" href="http://zencoder.com">ZenCoder</a>. It offers some cool features such as <a title="IndexTank Geolocation" href="http://indextank.com/documentation/tutorial-geolocation">Geolocation</a>, fuzzy search, <a title="IndexTank autocomplete" href="http://indextank.com/documentation/tutorial-autocomplete">autocomplete</a>, &#8220;Did you mean&#8221; spelling correction, stemming and most importantly, real-time indexing.</p>
<p>It&#8217;s a pretty cool service, and did I mention that it&#8217;s free to index up to 100,000 documents?</p>
<p>The only problem is that there wasn&#8217;t a PHP client available for the CodeIgniter framework, until now.</p>
<p>Haystack is a PHP client offering basic interaction with the <a title="IndexTank API" href="http://indextank.com/documentation/api">IndexTank API</a>, implemented as a CodeIgniter library. It is very much a work in progress, and as I wrote it primarily for use in my current project, it is not as general as it could be. I will be maintaining the library on Github and will continue to add new functionality and improvements as time allows.</p>
<p>You can download the library from <a title="IndexTank client library for CodeIgniter" href="https://github.com/kylenoland/Haystack---IndexTank-Client-for-CodeIgniter">my Github repository</a>.</p>
<h3>Basic Usage</h3>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Search <span style="color: #000000; font-weight: bold;">extends</span> CI_Controller
<span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Haystack'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #666666; font-style: italic;">// Create a new index</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_index</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cars'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #666666; font-style: italic;">// Set the index to work with for the next one or more IndexTank API calls</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_index</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cars'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Add a single document to the currently selected index</span>
     <span style="color: #000088;">$docid</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$fields</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
          <span style="color: #0000ff;">'text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'The Chevrolet Impala is a full-size automobile built by the Chevrolet division of General Motors introduced for the 1958 model year.'</span><span style="color: #339933;">,</span>
     <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_document</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$docid</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fields</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Add multiple documents to the currently selected index</span>
     <span style="color: #000088;">$docs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
          <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
               <span style="color: #0000ff;">'docid'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
               <span style="color: #0000ff;">'fields'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
                    <span style="color: #0000ff;">'text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'The Chevrolet Impala is a full-size automobile built by the Chevrolet division of General Motors introduced for the 1958 model year.'</span>
               <span style="color: #009900;">&#41;</span>
          <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
          <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
               <span style="color: #0000ff;">'docid'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span>
               <span style="color: #0000ff;">'fields'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
                    <span style="color: #0000ff;">'text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'The Ford GT is a mid-engine two-seater sports car. Ford Motor Company produced the Ford GT for the 2005 to 2006 model years. The designers drew inspiration from Ford\'s GT40 race cars of the 1960s.'</span>
               <span style="color: #009900;">&#41;</span>
          <span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_documents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$docs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Delete a single document from the currently selected index</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">delete_document</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Delete multiple documents from the currently selected index</span>
     <span style="color: #000088;">$docids</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">delete_documents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$docids</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Select a different search index to work with and add a new document</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_index</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'trucks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$docid</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$fields</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
          <span style="color: #0000ff;">'text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Bigfoot, introduced in 1979, is regarded as the original monster truck. Other trucks with the name &quot;Bigfoot&quot; have been introduced in the years since, and it remains the most well-known monster truck moniker in the United States.'</span>
     <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_document</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$docid</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fields</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Delete an entire search index and all of its documents</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">delete_index</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'vans'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
     <span style="color: #666666; font-style: italic;">// Search in the currently selected index</span>
     <span style="color: #000088;">$terms</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;monster truck&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$results</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haystack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">search</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$terms</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$results</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">matches</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// No results found</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span>
     <span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// Results found. Loop through them and print the id.</span>
          <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$results</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">results</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$doc</span><span style="color: #009900;">&#41;</span>
          <span style="color: #009900;">&#123;</span>
               <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Found document <span style="color: #006699; font-weight: bold;">{$doc-&gt;docid}</span>&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
          <span style="color: #009900;">&#125;</span>
     <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div></div>

]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/haystack-an-indextank-client-for-codeigniter-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>View the SQL code of a Stored Procedure in SQL Server Management Studio</title>
		<link>http://kylenoland.com/view-the-sql-code-of-a-stored-procedure-in-sql-server-management-studio/</link>
		<comments>http://kylenoland.com/view-the-sql-code-of-a-stored-procedure-in-sql-server-management-studio/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 20:12:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=184</guid>
		<description><![CDATA[I&#8217;m working on overhauling a large project management application for a client that I inherited from a previous developer.  Part of the application will produce various reports based on data pulled from a SQL Server database.  The query that pulls this data is a Stored Procedure in the database. Rather than try to reverse engineer [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on overhauling a large project management application for a client that I inherited from a previous developer.  Part of the application will produce various reports based on data pulled from a SQL Server database.  The query that pulls this data is a Stored Procedure in the database. Rather than try to reverse engineer the SQL query, I can simply run a SQL query of my own to dump the SQL code from the Stored Procedure so I can incorporate it into my application.</p>
<p>Just log into SQL Server Management Studio, open the database where the Stored Procedure resides, and execute the following query:</p>
<blockquote><p>sp_helptext &#8216;dbo.stored_procedure_name_here&#8217;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/view-the-sql-code-of-a-stored-procedure-in-sql-server-management-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2007 Dynamic Distribution Groups with Custom Filters</title>
		<link>http://kylenoland.com/exchange-2007-dynamic-distribution-groups-with-custom-filters/</link>
		<comments>http://kylenoland.com/exchange-2007-dynamic-distribution-groups-with-custom-filters/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 17:49:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=179</guid>
		<description><![CDATA[Recently I was experimenting with Exchange 2007 Dynamic Distribution Groups for a client.  I have the Active Directory profiles of each mailbox-enabled user filled out so that I can dynamically create and set their Outlook profiles automatically.  I wanted to use some of this information that I already store about each user to create distribution [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was experimenting with Exchange 2007 Dynamic Distribution Groups for a client.  I have the Active Directory profiles of each mailbox-enabled user filled out so that I can dynamically create and set their Outlook profiles automatically.  I wanted to use some of this information that I already store about each user to create distribution groups on the fly so that I don&#8217;t have to actively maintain group membership.</p>
<p>Specifically, I wanted to use the Office and Description field of their Active Directory profile to include them in a distribution group.  For instance, I have the following basic information stored in Active Directory for each user:</p>
<blockquote><p><strong>User A</strong><br />
Description: Dallas User<br />
Office: Corporate Office</p>
<p><strong>User B<br />
<span style="font-weight: normal;">Description: Dallas User<br />
Office: </span></strong>North Dallas Field Office</p>
<p><strong>User C<br />
<span style="font-weight: normal;">Description: Houston User<br />
Office: Houston Office</span></strong></p></blockquote>
<p><strong><span style="font-weight: normal;">If I want to maintain distribution groups in Exchange for each geographical area as well as each individual office, that is pretty easy in Exchange 2007.  You just create a new Dynamic Distribution Group.  However, the difficulty comes when you want to use an Active Directory profile field that is not built in the Exchange Management Console GUI.</span></strong></p>
<p>Executing the following command in the Exchange Management Shell will create a new Dynamic Distribution Group that selects every mailbox-enabled user with a Description field set to &#8220;Dallas User&#8221;:</p>
<blockquote><p>New-DynamicDistributionGroup -Name &#8220;GroupNameHere&#8221; -OrganizationalUnit &#8220;domain.local/OUNameHere&#8221; -RecipientFilter { ((RecipientType -eq &#8216;UserMailbox&#8217;) -or (RecipientType -eq &#8216;MailContact&#8217;) -or (RecipientType -eq &#8216;Contact)) -and (Description -eq &#8216;Dallas User&#8217;) }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/exchange-2007-dynamic-distribution-groups-with-custom-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup Windows SharePoint Services 3 using command line utilities</title>
		<link>http://kylenoland.com/backup-windows-sharepoint-services-3-using-command-line-utilities/</link>
		<comments>http://kylenoland.com/backup-windows-sharepoint-services-3-using-command-line-utilities/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 18:56:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=168</guid>
		<description><![CDATA[I recently had a SharePoint server in a RAID 1 configuration lose one of its hard drives.  Since the server was approaching it&#8217;s hard drive storage limitations anyway, I decided to install 2 new larger drives rather than rebuild the current array.  An added benefit of this approach is that I can archive the drive [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a SharePoint server in a RAID 1 configuration lose one of its hard drives.  Since the server was approaching it&#8217;s hard drive storage limitations anyway, I decided to install 2 new larger drives rather than rebuild the current array.  An added benefit of this approach is that I can archive the drive we&#8217;re using now and have a fairly failsafe recovery point.</p>
<p>The following steps outline how to use the Stsadm.exe utility to backup a Windows SharePoint Services 3 installation.  This tutorial assumes you will be logged onto the SharePoint server when you run this command, and that your SharePoint site is set as the default website in IIS.</p>
<p><strong>Step 1:  Open a comman prompt and find Stsadm.exe<br />
</strong>There is a chance that this location is already part of your PATH variable, but if not you will find Stsadm.exe at:</p>
<blockquote><p>C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN</p></blockquote>
<p><strong>Step 2: Run the Stsadm.exe utility with parameters</strong></p>
<blockquote><p>stsadm -o backup -url <a href="http://localhost">http://localhost</a> -filename mybackup.bak</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/backup-windows-sharepoint-services-3-using-command-line-utilities/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Allow non administrative users of Windows XP to adjust power settings</title>
		<link>http://kylenoland.com/allow-non-administrative-users-of-windows-xp-to-adjust-power-settings/</link>
		<comments>http://kylenoland.com/allow-non-administrative-users-of-windows-xp-to-adjust-power-settings/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 16:11:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=162</guid>
		<description><![CDATA[I&#8217;m not sure why Microsoft thinks that normal users shouldn&#8217;t be able to adjust their own power settings &#8211; especially laptop users &#8211; but they do.  Here is how to grant the appropriate permission to the power settings while keeping everything else locked down. This walk through assumes that you are logged onto the machine [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure why Microsoft thinks that normal users shouldn&#8217;t be able to adjust their own power settings &#8211; especially laptop users &#8211; but they do.  Here is how to grant the appropriate permission to the power settings while keeping everything else locked down.</p>
<p>This walk through assumes that you are logged onto the machine as the non administrative user.</p>
<p><strong>Step 1:  Launch the registry as the administrator</strong><br />
Navigate to Start &gt; Run and issue the following command:</p>
<blockquote><p>runas /user:localhost\administrator regedit</p></blockquote>
<p>A command window will appear and prompt you for the administrator password.  You will not see the password on the screen as you type.</p>
<p><strong>Step 2: Modify permissions on the PowerCfg registry key</strong></p>
<blockquote>
<ol>
<li>Browse  to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Controls Folder\PowerCfg</li>
<li>Right-click on the “GlobalPowerPolicy” key and choose “Permissions”</li>
<li>Click on the “Advanced” button</li>
<li>Click “Add”</li>
<li>Type INTERACTIVE and click “Check names”, then OK</li>
<li>Check the “Set value” and “Create Subkey” checkboxes in the “Allow” column, and click OK to apply your changes all the way out</li>
<li>Repeat the above steps for the “PowerPolicies” registry key</li>
</ol>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/allow-non-administrative-users-of-windows-xp-to-adjust-power-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allow non administrative users of Windows XP to change the system time and time zone settings</title>
		<link>http://kylenoland.com/allow-non-administrative-users-of-windows-xp-to-change-the-system-time-and-time-zone-settings/</link>
		<comments>http://kylenoland.com/allow-non-administrative-users-of-windows-xp-to-change-the-system-time-and-time-zone-settings/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 15:43:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=158</guid>
		<description><![CDATA[I won&#8217;t go into whether or not it is a good idea to grant rights to non-administrative users of a PC to change the system time and time zone settings, but if you need to do it without logging on locally as a computer administrator, here is how you do it. Step 1:   Grant [...]]]></description>
			<content:encoded><![CDATA[<p>I won&#8217;t go into whether or not it is a good idea to grant rights to non-administrative users of a PC to change the system time and time zone settings, but if you need to do it without logging on locally as a computer administrator, here is how you do it.</p>
<p><strong>Step 1:   Grant the SeSystemtimePrivilige to the user</strong><br />
You can perform this step on the command line with the NTRights application or via the GUI.  We will perform the steps using the Windows GUI.</p>
<blockquote>
<ol>
<li>Navigate to the Control Panel &gt; Administrative Tools</li>
<li>Hold the shift key while right clicking the Local Security Policy applet and choose the Run As option</li>
<li>Specify that you want to run the applet as the local administrator and provide the appropriate password.</li>
<li>From the menu on the left hand side, navigate to Security Settings &gt; Local Policies &gt; User Rights Assignment</li>
<li>Double click the &#8220;Change the system time&#8221; policy located in the right side of the screen.</li>
<li>Click the Add User or Group button and locate the user you wish to grant permission to.  Click OK to apply your changes all the way back out.</li>
</ol>
</blockquote>
<p><strong>Step 2: Launch the registry editor as the local administrator</strong><br />
To begin, click Start &gt; Run and type the following:</p>
<blockquote><p>runas /user:localhost\administrator regedit</p></blockquote>
<p>A command prompt window will open and prompt you for the local administrator credentials.  Enter the password and hit Enter.  You will not see any characters appear in the command window while typing the password.</p>
<p><strong>Step 3:  Grant permission to the user on the TimeZoneInformation registry key</strong><br />
It should go without saying, but messing around in the registry can cause system problems, so be careful.  Use <a title="Backup and restore the Windows XP registry" href="http://support.microsoft.com/kb/322756" target="_blank">this link</a> to create a backup of the registry before continuing.</p>
<blockquote>
<ol>
<li>Locate the HKLM\System\CurrentControlSet\Control\TimeZoneInformation registry key.</li>
<li>Right click on the key and choose the Permissions option</li>
<li>Click the Advanced button</li>
<li>Locate the appropriate user or group you wish to delegate permissions to.  Click on the user or group and hit the Edit button</li>
<li>Modify the permissions so that the Query Value, Set Value, Create Subkey, Enumerate Subkeys, Notify and Read Control permissions are applied.</li>
<li>Click OK to apply your changes all the way out</li>
</ol>
</blockquote>
<p><strong>Step 4:  Reboot</strong><br />
Once you reboot the machine the non-administrative user will be able to adjust the time and time zone settings on their machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/allow-non-administrative-users-of-windows-xp-to-change-the-system-time-and-time-zone-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Reasons you shouldn&#8217;t build a website in Adobe Flash</title>
		<link>http://kylenoland.com/3-reasons-you-shouldnt-build-a-website-in-adobe-flash/</link>
		<comments>http://kylenoland.com/3-reasons-you-shouldnt-build-a-website-in-adobe-flash/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 23:29:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=114</guid>
		<description><![CDATA[I&#8217;ve never really liked Flash.  I&#8217;ve been over the typical splash page intro for a long time.  Don&#8217;t misunderstand me here &#8211; I&#8217;m guilty of creating the kind of block-text-flying-past-your-face-with-laser-noises site intros.  Sometimes the client insists on that kind of Dane Cookery.  Some things never change &#8211; but at least now there is a better [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never really liked Flash.  I&#8217;ve been over the typical splash page intro for a long time.  Don&#8217;t misunderstand me here &#8211; I&#8217;m guilty of creating the kind of block-text-flying-past-your-face-with-laser-noises site intros.  Sometimes the client insists on that kind of <a title="Dane Cook Movie Previews" href="http://www.youtube.com/watch?v=-3F6xcOUs2I" target="_blank">Dane Cookery</a>.  Some things never change &#8211; but at least now there is a better alternative: HTML 5.  I&#8217;ll cover some interesting aspects of HTML 5 in my next article.</p>
<p>But let&#8217;s not get ahead of ourselves.  Here are a few reasons why building a Flash website is a really bad idea:</p>
<p><strong>1.  Search engines can&#8217;t index it (mostly)<br />
</strong>OK, so this might be changing.  Google has announced that it can index <em>some</em> parts of your Flash movie &#8211; but not all parts.  Basically the Google bot uses a brute force method to click around in your Flash movie and record what happens.  Sounds a little sketchy to me.  Certainly sketchy enough that I wouldn&#8217;t pin one of my site&#8217;s SEO hopes and dreams on it.  And what about Bing, Yahoo! and Ask.com?</p>
<p><span style="font-weight: normal;"><strong>2.  Flash requires a special browser plugin<br />
<span style="font-weight: normal;">This should be pretty obvious.  Would you go to a restaurant that required you to bring your own silverware or would you go to a restaurant that makes it easy for you to just show up, enjoy yourself and leave when you&#8217;re ready?  Why would you put an unnecessary roadblock in front of your site visitors?  What if your visitors aren&#8217;t even able to install the Flash plugin on their computers because their company IT department has locked them down?  What if your Flash movie relies on special Flash 9 functionality but Sally in the marketing department of Really Big Company You Want To Do Business With only has Flash 7 installed?  It sounds like we have a lot of easily avoidable barriers to entry here.</span></strong></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><strong>3.  Apple iPhones don&#8217;t support Flash<br />
<span style="font-weight: normal;">Perhaps you&#8217;ve heard of the iPhone.  It is currently the <a title="Most popular cell phone in America" href="http://blog.nielsen.com/nielsenwire/online_mobile/top-mobile-phones-sites-and-brands-for-2009/" target="_blank">world&#8217;s most popular cell phone</a>, having ousted the venerable <a title="Motorola Razr" href="http://direct.motorola.com/hellomoto/razr/" target="_blank">Motorola RAZR</a>.  More specifically, it is the world&#8217;s most popular cell phone that does not support Flash.  I don&#8217;t want to start an Apple vs. Adobe holy war here, and there is probably some bad blood between Steve Jobs and Adobe below the surface, but the main reason the iPhone doesn&#8217;t support Flash is: </span></strong></span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><strong><span style="font-weight: normal;">It can&#8217;t.  At least not very well.</span></strong></span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><strong><span style="font-weight: normal;">Think about it: the main interaction between a user and Flash animation is through the mouse &#8211; a device which supports the concept of <em>hovering</em>.  Menus expand to reveal sub menus on a hover, tooltips appear on a hover, new content is brought into focus on a hover.  How do you hover on an iPhone?  You can&#8217;t.  There is only clicked or unclicked.</span></strong></span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><strong><span style="font-weight: normal;">The problem isn&#8217;t an Apple problem, it&#8217;s an interface problem.  All touch screen devices suffer from this affliction.  I&#8217;m sure some day a clever developer will invent an even more clever way to implement hover on a touch screen, but that day isn&#8217;t today.  If you build a website that relies on Flash for navigation or key elements of your site, you are instantly losing a huge chunk of potential visitors.</span></strong></span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><span style="font-weight: normal;"><strong>So what should I do?<br />
<span style="font-weight: normal;">Well, first of all you should think about whether using Flash is bringing any value to your visitor&#8217;s experience, or if you&#8217;re just playing the design version of Keeping Up With The Joneses.  Every design and implementation choice you make on a website should serve a purpose.  It should make the content more readable, the navigation more intuitive, or the page load faster.</span></strong></span></span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><span style="font-weight: normal;">Have you ever visited a site, found the information you were looking for, and said to yourself, &#8220;You know, this website was great, but I sure wish it used more Flash.&#8221;  I haven&#8217;t.  Ever.</span></span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><span style="font-weight: normal;">But let&#8217;s say that you or your client insist on having that menu fly across the screen and do a flip every time a page loads.  At least do it with <a title="HTML 5" href="http://en.wikipedia.org/wiki/HTML5" target="_blank">HTML 5</a>.  More on that next time.<strong> </strong></span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/3-reasons-you-shouldnt-build-a-website-in-adobe-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to renew a GoDaddy Subject Alternative Name SSL certificate on Exchange 2007</title>
		<link>http://kylenoland.com/how-to-renew-a-godaddy-subject-alternative-name-ssl-certificate-on-exchange-2007/</link>
		<comments>http://kylenoland.com/how-to-renew-a-godaddy-subject-alternative-name-ssl-certificate-on-exchange-2007/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 03:19:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[information technology]]></category>
		<category><![CDATA[microsoft exchange 2007]]></category>
		<category><![CDATA[ssl certificate]]></category>

		<guid isPermaLink="false">http://kylenoland.com/?p=7</guid>
		<description><![CDATA[In this article I cover how to renew an expired SSL certificate on a Microsoft Exchange 2007 server.]]></description>
			<content:encoded><![CDATA[<p>I manage an Exchange 2007 server for one of my clients where we have deployed Outlook Anywhere, a.k.a. RPC-HTTPS, to deliver a robust Exchange experience to remote users.  We use a standard SSL certificate purchased from GoDaddy to secure communications.</p>
<p>That certificate expired today.  I used articles from <a title="Exchange 2007 SSL Certificate" href="http://telnetport25.wordpress.com" target="_blank">telnetport25</a> and <a title="Missing Private Key" href="http://msexchangegeek.com/2010/01/27/missing-private-key-on-exchange-certificate/" target="_blank">msexchangegeek</a> as resources, but I thought it would be helpful to compile the entire procedure in one location.</p>
<p><em>Note:  Since the process to create and download an SSL certificate is different for every Certificate Authority, I will not cover it here.  You should have your new certificate ready before beginning this procedure.</em></p>
<p><strong>Step 1:  Get the thumprint of the expired certificate<br />
<span style="font-weight: normal;">You have to know the unique thumbprint of a certificate before it can be uninstalled.  On the Exchange server, open the Exchange Management Shell and run the following command:</span></strong></p>
<blockquote><p><span style="font-weight: normal;">Get-ExchangeCertificate | fl | out-file –filePath c:\certs.txt</span></p></blockquote>
<p><span style="font-weight: normal;">You will end up with a file on your C drive called certs.txt.  Open this file and locate the certificate that needs to be uninstalled.  Look for the </span><span style="font-weight: normal;"><strong>NotAfter</strong> parameter to help you determine which certificate is expired or expiring soon if you have more than one certificate installed.  Once you locate the certificate that needs to be uninstalled, make a note of the value of the </span><span style="font-weight: normal;"><strong>Thumbprint</strong> parameter.</span></p>
<p><span style="font-weight: normal;"><strong>Step 2:  Uninstall the expired certificate<br />
<span style="font-weight: normal;">Run the following command, substituting the value of the Thumbprint from Step 1 where it says &lt;thumbprint&gt;:</span></strong></span></p>
<blockquote><p><span style="font-weight: normal;"><span style="font-weight: normal;">Remove-ExchangeCertificate –thumbprint &lt;thumbprint&gt;</span></span></p></blockquote>
<p><span style="font-weight: normal;"><span style="font-weight: normal;">You will be prompted to confirm that you really wish to uninstall this certificate from the system.  Press &#8216;a&#8217; to confirm and continue when you&#8217;re ready.</span></span></p>
<p><span style="font-weight: normal;"><span style="font-weight: normal;"><strong>Step 3:  Import your new certificate<br />
<span style="font-weight: normal;">You should have already generated your new certificate.  Since every certificate authority has a different process, we won&#8217;t cover that part of this operation here.  Download your new certificate to the C drive of the Exchange server and run the following command:</span></strong></span></span></p>
<blockquote><p><span style="font-weight: normal;"><span style="font-weight: normal;"><strong><span style="font-weight: normal;"> </span> <span style="font-weight: normal;">Import-ExchangeCertificate -path c:\mycert.cer –FriendlyName “mail.mydomain.com”</span></strong></span></span></p></blockquote>
<p>The <strong>FriendlyName</strong> parameter can be anything you want, so make it something descriptive that you will recognize later.  It is common practice to use the URL of the domain you are securing as the FriendlyName.</p>
<p>Make a note of the new Thumbprint that is generated for your new certificate.</p>
<p><strong>Step 4:  Enable the new certificate for OWA<br />
<span style="font-weight: normal;">Substitute the Thumbprint value from the previous step where it says &lt;thumbprint&gt; and run the following command to enable the new certificate to secure OWA:</span></strong></p>
<blockquote><p><strong><span style="font-weight: normal;"> </span> <span style="font-weight: normal;">Enable-ExchangeCertificate -Thumbprint &lt;thumbprint&gt; -Services IIS</span></strong></p></blockquote>
<p><strong><span style="font-weight: normal;">That&#8217;s all there is to it.  Test your certificate installation by opening your OWA domain in a web browser.  If the SSL encryption icon is set and you do not receive any warnings about certificate errors, you are done.</span></strong></p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://kylenoland.com/how-to-renew-a-godaddy-subject-alternative-name-ssl-certificate-on-exchange-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

