<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Piece of MIND(scape)</title>
	
	<link>http://blog.mindscapesolutions.com</link>
	<description>Thoughts and advice from the Mindscapers about SEO, Social Media, Analytics, and Internet Marketing.</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:25:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mastermindshare/nqqM" /><feedburner:info uri="mastermindshare/nqqm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>mastermindshare/nqqM</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>What Makes Front End Coding So Difficult (or HTML Black Magic)</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/Y2biaxZw4FM/</link>
		<comments>http://blog.mindscapesolutions.com/2012/02/02/what-makes-front-end-coding-so-difficult-or-html-black-magic/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 14:48:43 +0000</pubDate>
		<dc:creator>Aaron Brander</dc:creator>
				<category><![CDATA[Behind the Curtain]]></category>
		<category><![CDATA[front end]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1626</guid>
		<description><![CDATA[&#160; Do you know what front-end programmers dream about? It is not an answer to the national debt, or if Democrats and Republicans can get along, or even if there is life on other planets. No, front-end programmers dream of something that seems entirely more difficult to attain. A front-end programmer wants a world where [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/02/010101road1.jpg"><img class="aligncenter size-full wp-image-1641" title="010101road" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/02/010101road1.jpg" alt="" width="497" height="300" /></a></p>
<p>Do you know what front-end programmers dream about? It is not an answer to the national debt, or if Democrats and Republicans can get along, or even if there is life on other planets. No, front-end programmers dream of something that seems entirely more difficult to attain.</p>
<p>A front-end programmer wants a world where they can do their work one time and be done.</p>
<p>It sounds simple, doesn’t it? Most of us go through life completing a task and knowing that having completed the task, there is nothing more to do.</p>
<p><span id="more-1626"></span>Not so for the much maligned front-end programmer. Before I take you too deep into their dark, esoteric world of angled brackets, cascading styles and the abomination that is javascript, it will be helpful to know what a front-end programmer is.</p>
<p>I am sure there are many different definitions, but at MINDSCAPE, our front-end programmers take the pretty designs from a designer and turn it into the code that displays the website in a browser. It is not enough to take the design, turn it into an image and put that on the Internet. Once upon a time the world was that simple. But it’s not 1995 anymore, and our clients want to be found on the Web by their visitors. So, our front-end programmers must turn the design into hundreds of lines of code so that automated bots can crawl the site and index the content found there.</p>
<p>Our front-end programmers work their magic with HTML, CSS, javascript, flash and a number of frameworks and standards that help them do their work better.</p>
<p>It may not be simple, but it’s a fairly straightforward process. Or so it seems, until the first time they open up the webpage they just built in Internet Explorer. That is where things start to get messy.</p>
<p>You see, there are a lot of browsers out there. A browser is the program you use to see the Internet. Google Chrome, Firefox and Safari are a few of the modern browsers. They are considered modern because they support many of the features from the latest HTML standards (HTML 5) and CSS standards (CSS 3). The new standards allow our front-end programmers to do really cool stuff. And when not doing cool stuff, it helps them do the mundane tasks very quickly.</p>
<p>Well, Internet Explorer is a bit behind the curve, and that’s sort of an understatement. So our front-end programmers find themselves in a bind. Do they build the website to use the latest and greatest technology, or do they build the website to work in what is somehow still the most popular browser (see stats at <a href="http://gs.statcounter.com/">StatCounter</a>)? And if they choose to build the website for Internet Explorer (IE), do they optimize it for IE 6, IE 7, IE 8, or IE 9. You see, each version has its own interpretations of the standards. So what you build for one, is not going to work for the other.</p>
<p>Perhaps you begin to see why the ritual of making a site work in IE usually begins with animal sacrifices, pounding drums and incense. It’s another reason they make us work in <a href="http://blog.mindscapesolutions.com/2012/01/19/how-deep-is-that-rabbit-hole/">the Pit</a>.</p>
<p>Alright, so we don’t have to go quite that far. However, there are additional wrinkles to contend with. You see, we want to make our websites so that it is easy to extend them to work on mobile devices. Most new mobile devices, thankfully, use browsers that handle the latest CSS and HTML. That allows us to build a version of the site that works for both mobile and desktop with a minimum of additional effort beyond building the mobile site styles.</p>
<p>In the end, our front-end programmers must build the same site multiple times if we are going to make it compatible with all possible browsers. That means each site must be:</p>
<p><strong>A site</strong> <strong>for modern desktop browsers</strong> such as Google Chrome, Firefox, and Safari. IE 9 handles most of what these other browsers do, so that is a step in the right direction. However, many of the features are supported in different ways by each browser, so we still have to define rules in multiple ways.</p>
<p><strong>A site for IE 8 and IE 7. </strong>These browsers are pretty close together, and most of the time standard HTML and CSS will work well with them. Either way, it needs to be tweaked.</p>
<p><strong>A site</strong> <strong>for IE 6.</strong> Microsoft has finally announced that they will be killing off this browser, and the front-end world rejoiced. It’s a nightmare to work with, and for the longest time it was the most used browser in the world. Check out the <a href="http://www.ie6countdown.com">Internet Explorer 6 Countdown</a> website. IE 6 usage is less than 1% in the US now! Yay!</p>
<p><strong>A site</strong> <strong>for mobile.</strong> Even though the browsers are standards compliant, we still need to design and style the site differently for the mobile space. It seems easy enough, until you realize that there are dozens of potential screen sizes between mobile phones and tablets.</p>
<p>Now, there are ways that we combat this without having to build entirely new sites for the different browsers but it involves trade-offs. For example, IE 7 and 8 will not have rounded borders when we finish the site. To make rounded borders, we have to create many small images to create the corner. On modern browsers, it is a line of CSS to create a rounded border. That saves us time and allows us to concentrate on hundreds of other details that make your site successful.</p>
<p>In the end, sometimes it is important that we fully support older browsers. In that case, we can make it happen but it takes additional time and costs extra money. If you know you need older versions of Internet Explorer to work, be sure to consult with your Web developer before starting the project.</p>
<p>And if you do ask him to do it and you hear pounding drums, see strange flickering lights and smell smoke coming from his room, do <strong>not</strong> go in. You don’t want to know what it takes to make it happen.</p>
<p><em><a href="http://aaron-brander.com/" target="_blank">Aaron Brander</a> is the VP of Technology for <a href="http://www.mindscape-hm.com/" target="_blank">MINDSCAPE at Hanon McKendry</a>.</em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/08/22/falling-into-the-programming-complexity-trap/" title="Falling Into the Programming Complexity Trap">Falling Into the Programming Complexity Trap</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/Y2biaxZw4FM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/02/02/what-makes-front-end-coding-so-difficult-or-html-black-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/02/02/what-makes-front-end-coding-so-difficult-or-html-black-magic/</feedburner:origLink></item>
		<item>
		<title>Can a Mobile App Help With SEO?</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/m-QtDPo4OeM/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/30/can-a-mobile-app-help-with-seo/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 17:34:55 +0000</pubDate>
		<dc:creator>Paul Ferrier</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[mobile apps]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[search engine ranking]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1610</guid>
		<description><![CDATA[I recently had a client ask me if developing a mobile application would help them with their SEO and search engine ranking. I love the question, so I thought I would write a quick post on it. From an SEO perspective, an app actually COULD influence ranking, but not how you might think initially. Just [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/iStock_000017463784XSmall.jpg"><img class="aligncenter size-full wp-image-1621" title="iStock_000017463784XSmall" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/iStock_000017463784XSmall.jpg" alt="" width="263" height="307" /></a></p>
<p>I recently had a client ask me if developing a mobile application would help them with their SEO and search engine ranking.</p>
<p>I love the question, so I thought I would write a quick post on it.</p>
<p>From an SEO perspective, an app actually COULD influence ranking, but not how you might think initially.</p>
<p><span id="more-1610"></span></p>
<p>Just posting a link to download a mobile app is not where the benefit comes from. The benefit comes from the application itself and what it does for your company, brand, service, etc. The app must be amazing. By creating an amazing app, what happens? People talk about it. Your app is going to have the biggest affect on your bottom line when the content is buzz worthy. Just like Facebook, Twitter or any other social media platform &#8211; or the Web in general &#8211; the content that gets shared is the great stuff. Make your app great and the buzz will naturally follow.</p>
<p>Take Angry Birds, for example. The app is what people want: free entertainment, great graphics and an original, memorable idea. It&#8217;s amazing, right? So what happens? People talk about it in their blog, talk about it on social media and do what? <strong>They link to it.</strong> Those links help the site in the search engines. Do you think that increased traffic to Rovio&#8217;s website? I would certainly assume so.</p>
<p>So, if you&#8217;re considering an application, get started by asking a few simple questions:</p>
<ol>
<li>What&#8217;s in it for my user?</li>
<li>What&#8217;s in it for me (i.e. my company)?</li>
<li>How can I make it amazing and worthy of a conversation to generate buzz so people share it?</li>
</ol>
<p>Ultimately, it&#8217;s more about the word-of-mouth buzz created by new, quality content than creating an app just to have one. A duplication of a brochure-style website is not a good use for an application…or your money.</p>
<p>So think hard. Be relevant. Strive for amazing.</p>
<p>Hope this helps,<br />
Paul Ferrier</p>
<p><em><a href="http://www.mindscape-hm.com/paul-ferrier" target="_blank">Paul Ferrier</a> is the co-founder of <a href="http://www.mindscape-hm.com" target="_blank">MINDSCAPE at Hanon McKendry</a> and a Web design/SEO expert</em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/11/15/mobile-homepages-level-out-bounce-rate/" title="Mobile Homepages Level Out Bounce Rate">Mobile Homepages Level Out Bounce Rate</a></li><li><a href="http://blog.mindscapesolutions.com/2011/11/29/looking-for-mobile-analytics-six-sites-to-check-out/" title="Looking for Mobile Analytics? Six Sites to Check Out">Looking for Mobile Analytics? Six Sites to Check Out</a></li><li><a href="http://blog.mindscapesolutions.com/2011/10/10/beyond-seo-improving-your-bottom-line/" title="Beyond SEO&#8230;Improving Your Bottom Line">Beyond SEO&#8230;Improving Your Bottom Line</a></li><li><a href="http://blog.mindscapesolutions.com/2011/10/03/search-engine-optimized-copywriting/" title="Search Engine Optimized Copywriting  ">Search Engine Optimized Copywriting  </a></li><li><a href="http://blog.mindscapesolutions.com/2011/09/21/the-advantages-of-having-a-mobile-site/" title="The Advantages of Having a Mobile Site">The Advantages of Having a Mobile Site</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/m-QtDPo4OeM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/30/can-a-mobile-app-help-with-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/30/can-a-mobile-app-help-with-seo/</feedburner:origLink></item>
		<item>
		<title>ASP.NET 4.0 – Strongly Typed Model on Form Uploads</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/4y2_E2ft7Ic/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/26/asp-net-4-0-strongly-typed-model-on-form-uploads/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 15:04:35 +0000</pubDate>
		<dc:creator>Eric Patterson</dc:creator>
				<category><![CDATA[Website Development]]></category>
		<category><![CDATA[asp mvc]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[unit testing]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1604</guid>
		<description><![CDATA[I recently came across a problem in an ASP.NET MVC Web Application where it needed to upload an image with some extra form fields, but still have the controller’s post action testable. This seemed like an easy enough task, but I soon realized that in order to get the uploaded file from the view I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/iStock_000015733452XSmall.jpg"><img class="aligncenter size-full wp-image-1618" title="iStock_000015733452XSmall" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/iStock_000015733452XSmall.jpg" alt="" width="497" height="392" /></a></p>
<p>I recently came across a problem in an ASP.NET MVC Web Application where it needed to upload an image with some extra form fields, but still have the controller’s post action testable. This seemed like an easy enough task, but I soon realized that in order to get the uploaded file from the view I had to grab it from the request object’s files collection. Doing this would make my testing harder, and, more drastically, decouple this action from the view model.</p>
<p>I scoured the Internet to find out why the magic behind binding the view model to the controller would not put the posted file in an argument alongside my strongly typed model. After coming to the conclusion that no direct articles or examples with my scenario existed, I turned to learning more about the binding that was taking place behind the scenes.</p>
<p><span id="more-1604"></span>After learning quite a bit about the binding, I set out to create my own custom model binder so I could put the posted file in my strongly typed model before the controller’s action method was even called. If you have run into a similar problem, keep reading to see how I kept the view model strongly typed.</p>
<p><strong>Interface with IModelBinder</strong><br />
The first thing I did was create a new ModelBinder class which interfaces the IModelBinder interface. By interfacing the IModelBinder you will be forced to implement this function:</p>
<p><code><br />
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)<br />
</code></p>
<p>By implementing this function we gain full access to the controller context and the binding context object. The most beneficial of those arguments is the binding context because it is used for retrieving the form’s post back values.</p>
<p>Since my view has a form with text fields and a file input field, I had two important value providers in my binding context’s value provider collection; one was the FormValueProvider and the other was the HttpFileCollectionValueProvider. This was were I could get all my form values and the newly uploaded file.</p>
<p>Next, I instantiated a new model, set the appropriate properties from the form value provider and file value provider on the model and return the new model out of the implemented BindModel function. I realized that in order to make this more agnostic I would have to use a little reflection.</p>
<p>Reflection was possible because the key names in the value providers are my model’s property names which is how .NET MVC is strongly typing the models in our views to start with. Once I was all done with my new custom model binder I ended up with this class:</p>
<p><strong>Custom Model Binder</strong><br />
<code><br />
public class UploadFileInjectionModelBinder : IModelBinder<br />
{<br />
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)<br />
{<br />
var viewModel = Activator.CreateInstance(bindingContext.ModelType);</code></p>
<p>var modelProperties = viewModel.GetType().GetProperties();<br />
foreach (PropertyInfo modelProperty in modelProperties)<br />
{<br />
try<br />
{<br />
var contextVal = bindingContext<br />
.ValueProvider.GetValue(modelProperty.Name)<br />
.ConvertTo(modelProperty.PropertyType);<br />
modelProperty.SetValue(viewModel, contextVal, null);<br />
}<br />
catch{}<br />
}</p>
<p>return viewModel;<br />
}<br />
}</p>
<p>The new custom model binder is the main piece to the puzzle. It is looking at the model’s properties and trying to find a matching key/value from any of the value providers. In order to have my new model binder set the uploaded file, I needed to have the appropriate property defined in my model with a matching type.</p>
<p>The files that are being uploaded are being stored as a HttpPostedFileBase object. That means I had to put a public property in the view model of that same type. Since the new custom model binder is using reflection based on property names, I needed the name of the HttpPostedFileBase object to be correlated with the file input’s name and id on the view. As you can see below, my model’s property name of “UploadedFile” is reflected in my view’s input attributes for id and name.</p>
<p><strong>View Model:</strong><br />
<code><br />
public class UploadedImageViewModel<br />
{<br />
public string Name { get; set; }<br />
public string AltText { get; set; }<br />
public int AssociatedParentId { get; set; }<br />
public HttpPostedFileBase UploadedFile { get; set; }<br />
}<br />
</code></p>
<p><strong>Razor View:</strong><br />
<code><br />
@using (Html.BeginForm(“ActionName”, "ControllerName",<br />
FormMethod.Post, new { enctype = "multipart/form-data" }))<br />
{</p>
<fieldset>
<legend>Upload A Photo</legend>
<p>@Html.LabelFor(model =&gt; model.Name)<br />
@Html.TextBoxFor(x =&gt; x.Name)</p>
<p>@Html.LabelFor(model =&gt; model.AltText)<br />
@Html.TextBoxFor(x =&gt; x.AltText)</p>
<p>@Html.input id="UploadedFile" type="file" name="UploadedFile  @Html.input type="submit" value="Add Photo" </fieldset>
<p>}</code></p>
<p>At this point, the major work is done and I need to tell .NET to use our custom model binder instead of the default model binder. There are a few ways to do this, but I ended up overriding that behavior for the distinct action that is handling the post back.</p>
<p>To override the model binder for a distinct action, decorate the model argument in the action function with the attribute of [ModelBinder(typeof(YourNewModelBinder))] and the final code for the post action looks like this:</p>
<p><strong>Controller Post Back Action:</strong><br />
<code><br />
[AcceptVerbs(HttpVerbs.Post)]<br />
public ActionResult SavePhoto(<br />
[ModelBinder(typeof(UploadFileInjectionModelBinder))]<br />
UploadedImageViewModel imageModel)<br />
{<br />
//put save logic here<br />
}<br />
</code></p>
<p>The action’s model is now strongly typed, so I can reference the posted file right from the model instead of accessing the controller’s context request object. The action function is then coupled to just a view model instead of the model and controller.</p>
<p><strong>Unit Testing the New Model Binder</strong><br />
Next we need to unit test our new creation. Since the custom model binder requires a controller context object and a binding context object, I created a binding context object that will hold fake value providers containing test data and a fake controller context.</p>
<p>Creating the fake controller context is as simple as creating a class in the test project that inherits from ControllerContext. No other functionality is necessary since we are only using it as a valid object to pass to the BindModel function.</p>
<p>Next we need to build up the binding context object. To do so, set it to the model type which it used for creating our new model in the model binder and also give it the properties to find from the value providers.</p>
<p>The model type is inferred from the model meta data object, so we actually have to create that object instead of setting the model type. Create a model meta data object for our view model by using Current.GetMetaDataForType from the static class ModelMetadataProviders.</p>
<p>Now we create the fake value providers which the model binder uses for getting the property values to store into the newly created model. After a few trials and tribulations, it was apparent that using the DictionaryValueProvider for each specific type in my model was the best way to setup fake value providers. Each of the new value providers are created with data that I can use for testing and the only thing left is to call the new model binder with the fake controller context and the binding context object as its arguments.</p>
<p>You can see below that I reference a FakeHttpPostedFileBase class which I created the same as the fake controller context mentioned above. Unlike the fake controller context I had to override two properties of the HttpPostedFileBase class. The first one was ContentType and the second one was InputStream. By overriding these properties we can later assert test conditions from the new model that the bind model function returns.</p>
<p>The test and fake testing posted file object are shown here:</p>
<p><strong>Unit Test Function:</strong><br />
<code><br />
[Test]<br />
public void BindModelTest()<br />
{<br />
//arrange<br />
m_bindingContext = new ModelBindingContext();<br />
Stream resourceStream =<br />
Assembly.GetExecutingAssembly().GetManifestResourceStream(<br />
"Web.Test.Images.ToastedAppleCinnamonCereal.jpg");<br />
var fakePostedFile = new FakeHttpPostedFileBase(resourceStream, "image/jpeg");</code></p>
<p>var fileValueProvider =<br />
new DictionaryValueProvider(<br />
new Dictionary {{&#8220;UploadedFile&#8221;, fakePostedFile}}, null);<br />
var stringValueProvider =<br />
new DictionaryValueProvider(<br />
new Dictionary {{&#8220;Name&#8221;, &#8220;SomeName&#8221;}, {&#8220;AltText&#8221;, &#8220;SomeAltText&#8221;}}, null);<br />
m_valueProvider = new ValueProviderCollection {fileValueProvider, stringValueProvider};</p>
<p>m_bindingContext.ValueProvider = m_valueProvider;<br />
m_bindingContext.ModelMetadata = ModelMetadataProviders<br />
.Current.GetMetadataForType(null, typeof (UploadedImageViewModel));</p>
<p>m_fakeControllerContext = new FakeControllerContext();</p>
<p>//act<br />
var result = m_binder.BindModel(m_fakeControllerContext, m_bindingContext);</p>
<p>//assert<br />
Assert.IsInstanceOf(result);<br />
var viewResult = result as UploadedImageViewModel;<br />
Assert.NotNull(viewResult);</p>
<p>Assert.AreEqual(&#8220;SomeName&#8221;, viewResult.Name, &#8220;Wrong View Name Returned&#8221;);<br />
Assert.AreEqual(&#8220;SomeAltText&#8221;, viewResult.AltText, &#8220;wrong alt text&#8221;);<br />
Assert.NotNull(viewResult.UploadedFile, &#8220;File Did not get moved to model&#8221;);<br />
}</p>
<p><strong>Fake Posted File:</strong><br />
<code><br />
public class FakeHttpPostedFileBase : HttpPostedFileBase<br />
{<br />
private readonly Stream m_stream;<br />
private readonly string m_contentType;</code></p>
<p>public FakeHttpPostedFileBase(Stream stream, string contentType)<br />
{<br />
m_stream = stream;<br />
m_contentType = contentType;<br />
}</p>
<p>public override string ContentType<br />
{<br />
get<br />
{<br />
return m_contentType;<br />
}<br />
}</p>
<p>public override Stream InputStream<br />
{<br />
get<br />
{<br />
return m_stream;<br />
}<br />
}<br />
}</p>
<p><strong>Conclusion</strong></p>
<p>This implementation provides separation of logic from controller actions to the underlying .NET objects with the additional benefit of becoming highly reusable. Any time I need to have a file uploaded with a form I can just reuse my custom model binder and not worry about getting the file out of the underlying request object. That keeps my controller actions decoupled from the controller context and each respective unit test simpler.</p>
<p>The unit tests are simpler for the post actions since we don’t have to test how the posted file arrived into our model; all that logic is being handled by the custom model binder. This will keep our unit tests for actions cleaner and quicker to implement.</p>
<p>If you have found other ways to do this, then please feel free to share!</p>
<p><em>Eric Patterson is a developer for <a href="http://www.mindscape-hm.com/" target="_blank">MINDSCAPE at Hanon McKendry</a>. He is also a Google Analtyics qualified individual. </em></p>
<h2  class="related_post_title">Random Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/08/26/measuring-your-seo-efforts/" title="Measuring Your SEO Efforts">Measuring Your SEO Efforts</a></li><li><a href="http://blog.mindscapesolutions.com/2012/01/06/life-in-the-pit-or-how-to-pamper-your-programmers/" title="Life in the Pit (or How to Pamper Your Programmers)">Life in the Pit (or How to Pamper Your Programmers)</a></li><li><a href="http://blog.mindscapesolutions.com/2010/09/01/how-much-does-a-website-cost/" title="How much does a website cost?">How much does a website cost?</a></li><li><a href="http://blog.mindscapesolutions.com/2012/01/04/year-beginning-focus-on-giving/" title="Year Beginning: Focus on Giving">Year Beginning: Focus on Giving</a></li><li><a href="http://blog.mindscapesolutions.com/2009/05/13/engage-with-social-media-or-risk-hurting-your-brand/" title="ENGAGE with Social Media or Risk HURTING Your Brand">ENGAGE with Social Media or Risk HURTING Your Brand</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/4y2_E2ft7Ic" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/26/asp-net-4-0-strongly-typed-model-on-form-uploads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/26/asp-net-4-0-strongly-typed-model-on-form-uploads/</feedburner:origLink></item>
		<item>
		<title>Quoting a Project (or How Deep is that Rabbit Hole?)</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/p47P7IdKyrc/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/19/how-deep-is-that-rabbit-hole/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 15:03:26 +0000</pubDate>
		<dc:creator>Aaron Brander</dc:creator>
				<category><![CDATA[Behind the Curtain]]></category>
		<category><![CDATA[building an app]]></category>
		<category><![CDATA[building custom apps]]></category>
		<category><![CDATA[custom applications]]></category>
		<category><![CDATA[custom apps]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1593</guid>
		<description><![CDATA[&#160; Last year I had a few rooms in my house repainted. In order to determine which company I would use for the work, I invited them to the house to quote the work. I showed them the rooms, told them the type of paint and color I wanted, and told them when I wanted [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/iStock_000017661487XSmall1.jpg"><img class="aligncenter size-full wp-image-1616" title="iStock_000017661487XSmall" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/iStock_000017661487XSmall1.jpg" alt="" width="497" height="300" /></a></p>
<p>Last year I had a few rooms in my house repainted. In order to determine which company I would use for the work, I invited them to the house to quote the work. I showed them the rooms, told them the type of paint and color I wanted, and told them when I wanted the work done by.</p>
<p>Each company was able to calculate the amount of paint they needed, the cost of the paint and how many people would need to work on the project in order to have it done by my deadline. Having painted a multitude of rooms before my request, they were able to imagine potential obstacles before they happened and be fairly sure that they were not missing anything in their quote.</p>
<p>The resulting quotes were very precise and given to me with a high degree of confidence.</p>
<p><span id="more-1593"></span>Quoting a job for a new custom application is a lot like that, except that we can’t see the rooms ahead of time. In fact, we can’t see the rooms, because first we have to build them. The rooms that we see in our mind&#8217;s eye are often very different from what our client sees in their imagination.</p>
<p>Let’s ponder a request to build a rabbit hole. The rabbit hole needs to be 8 inches in diameter, be set in a yard full of lush, green grass, preferably under an apple tree and near a babbling brook. Beyond the tree should be a field of ripened, winter wheat; golden and dancing in the breeze.</p>
<p>Seems easy enough, except that getting the blossoms correct on the apple tree may take some doing. But, all in all, everything is out in the open.</p>
<p>That is, of course, until we build that rabbit hole and take a trip inside. Suddenly, there is a rabbit late for an important date; a grinning, invisible Cheshire cat; a hookah-smoking caterpillar, a mad hatter and an irate Queen of Hearts. And let’s not even get into the pills and potions that can change the user’s size and shape at will!</p>
<p>The client is completely nonplussed by our discovery. Of course the rabbit hole contained an entirely new world full of anthropomorphic creatures and nonsensical laws of physics! What other types of rabbit holes could there be?</p>
<p>Sounds a bit far fetched, doesn’t it? And yet, similar scenes happen in the software development world all of the time.</p>
<p><strong>A problem</strong> is presented by a client in a short paragraph of needs and requirements.<br />
<strong>A software engineer</strong> conjures up thoughts of similar software that have been built in the past as a basis for their quote.<br />
<strong>A quote<strong> is given based on myriad undocumented assumptions and risks.</strong></strong></p>
<p>Three months later, the proud software engineer presents their creation to the client and is flummoxed as to why the client is so flabbergasted at the result!</p>
<p>It doesn’t have to be that way, and at MINDSCAPE, we do our best to eliminate as many doubts as we can before we begin coding.</p>
<p><strong>The MINDSCAPE Process</strong></p>
<p><strong>1)</strong> Our sales team meets with a client to determine what needs to be built.</p>
<p><strong>2)</strong> Our quoting committee meets to understand the client’s needs. If it’s a simple project for a client that we’ve worked with in the past, we may be comfortable enough to give a fixed price cost right then. Most times, however, we need more information before we can give a granular cost. Instead, we’ll give a large range of costs based on what we know of the project, but more importantly, based on what we think may be hiding down that rabbit hole. We’ve been down there a few times and know what sort of exotic features are lurking.</p>
<p><strong>3)</strong> If the client finds that part of the range will fit their budget, we engage them for a one day, on-site (if possible) requirements gathering session. Two of our team members will sit down for an in-depth discussion about what the system needs to do, why it needs to do it and what benefits are expected.</p>
<p>The result of this meeting is a much better understanding of the system and leads to two courses of action.</p>
<p style="padding-left: 30px;">A) If the project is manageable enough, we’ll have been able to document the vast majority of functionality and even have some rough outlines for what the different screens will need to do. This will give us enough confidence to bring back a fixed cost estimate for development.</p>
<p style="padding-left: 30px;">B) If the project is very large, we’ll have a better understanding of the scope of the project, as well as potential risks. The next action is to engage in a Technical Design Document phase. Based on the on-site discussion, we’ll be able to give a better budget range and a cost for the Technical Design Document. If the more-defined scope is agreeable to the client, we’ll start on the Technical Design Document.</p>
<p><strong>4)</strong> The Technical Design Document deserves its own post later on, but for now it’s enough to know that our engineers will grab their spelunking gear and head down into that rabbit hole. They will survey the landscape and draw out what it is they see. The client will give feedback during this phase to make sure that we are seeing the same thing in that rabbit hole that they are seeing.</p>
<p><strong>5)</strong> Once the Technical Design Document is done, we present it to the client along with a final, fixed cost price for the development. The client can then work with us to complete the development or take our Technical Design Document to another firm for quoting. Either way, we’ve done the hard work to determine what’s down the rabbit hole; for our own sake, but also for our client’s sake and the sake of any developer that may work on the project in the future.</p>
<p>Even with all of this due diligence, it takes constant communication and interaction with the client to make sure the project is on course. The final scope of the project can change due to many issues (who can foresee a croquet game with flamingos as mallets and hedgehogs as balls?), but we do our best at MINDSCAPE to keep ahead of the game.</p>
<p>If you have an idea or need for a custom application, let us know by <a href="http://www.mindscape-hm.com/application-development">filling out the form</a>.</p>
<p>(And if you have not had the pleasure of reading Lewis Carroll’s <a href="http://en.wikipedia.org/wiki/Alice's_Adventures_in_Wonderland">Alice in Wonderland</a>, you should at least browse the Wikipedia article so that this blog post doesn’t seem completely off the wall.)</p>
<p><em><a href="http://aaron-brander.com/" target="_blank">Aaron Brander</a> is the VP of Technology for <a href="http://www.mindscape-hm.com/" target="_blank">MINDSCAPE at Hanon McKendry</a>.</em></p>
<h2  class="related_post_title">Random Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/12/09/high-bounce-rate-check-your-tracking-code/" title="High Bounce Rate? Check Your Tracking Code!">High Bounce Rate? Check Your Tracking Code!</a></li><li><a href="http://blog.mindscapesolutions.com/2011/07/11/google-plus-business-feature-wish-list/" title="Google+ for Business: Feature &#8220;Wish List&#8221;">Google+ for Business: Feature &#8220;Wish List&#8221;</a></li><li><a href="http://blog.mindscapesolutions.com/2009/06/02/five-steps-to-market-your-business-with-text-messaging/" title="Five Steps to Market Your Business with Text Messaging">Five Steps to Market Your Business with Text Messaging</a></li><li><a href="http://blog.mindscapesolutions.com/2012/01/09/setting-up-goals-in-google-analytics/" title="Setting Up Goals in Google Analytics">Setting Up Goals in Google Analytics</a></li><li><a href="http://blog.mindscapesolutions.com/2009/08/24/why-should-your-prospects-choose-you-show-them-you-are-worthy/" title="Why Should Your Prospects Choose You?  Show Them You Are Worthy!">Why Should Your Prospects Choose You?  Show Them You Are Worthy!</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/p47P7IdKyrc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/19/how-deep-is-that-rabbit-hole/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/19/how-deep-is-that-rabbit-hole/</feedburner:origLink></item>
		<item>
		<title>Email Subject Lines: Increasing Your Open Rate With Problems?</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/rkI31dcXMf0/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/10/email-subject-lines-increasing-your-open-rate-with-problems/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 16:59:48 +0000</pubDate>
		<dc:creator>Paul Ferrier</dc:creator>
				<category><![CDATA[Email Marketing]]></category>
		<category><![CDATA[creating an email list]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[email marketing]]></category>
		<category><![CDATA[email marketing strategy]]></category>
		<category><![CDATA[email marketing tactics]]></category>
		<category><![CDATA[email strategy]]></category>
		<category><![CDATA[email tactics]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1581</guid>
		<description><![CDATA[I just received two emails from Internet marketer Trey Smith. The first email&#8217;s subject line read: &#8220;Update&#8221; I didn&#8217;t read it. But then about 90 minutes later, I received another email with the subject line: &#8220;SERVER CRASH! (Woooo hooo!)&#8221; I immediately opened it to learn what happened. It&#8217;s curiosity. The email read: Well, it&#8217;s official. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/email.jpg"><img class="aligncenter size-full wp-image-1587" title="email" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/email.jpg" alt="" width="497" height="282" /></a></p>
<p>I just received two emails from Internet marketer Trey Smith. The first email&#8217;s subject line read:</p>
<p style="padding-left: 30px;">&#8220;Update&#8221;</p>
<p>I didn&#8217;t read it.</p>
<p>But then about 90 minutes later, I received another email with the subject line:</p>
<p style="padding-left: 30px;">&#8220;SERVER CRASH! (Woooo hooo!)&#8221;</p>
<p>I immediately opened it to learn what happened. It&#8217;s curiosity. The email read:</p>
<p style="padding-left: 30px;"><span id="more-1581"></span>Well, it&#8217;s official. Had to leave bluehost because</p>
<p style="padding-left: 30px;">it&#8217;s crashing every time I send an email.</p>
<p style="padding-left: 30px;">So if you clicked on the new video I just sent out<br />
and got an error, sorry about that!</p>
<p style="padding-left: 30px;">I put the new video up here for you that should<br />
hold up fine:</p>
<p style="padding-left: 30px;"><a href="http://www.treysmithstuff.com/platinum-plus/" target="_blank">http://www.treysmithstuff.com/<wbr>platinum-plus/</wbr></a></p>
<p style="padding-left: 30px;">Make sure you watch that! You&#8217;ll get a brand<br />
new update on my iphone business and also a<br />
chance to get something free that&#8217;s super cool.</p>
<p style="padding-left: 30px;">Take care,</p>
<p style="padding-left: 30px;">Trey</p>
<p>I forwarded this email to the entire staff saying how great the email was because shit happens and it was a great way to handle it.</p>
<p>When I hit send, I stopped and thought, &#8220;Wait a minute. Is this another email marketing tactic?&#8221;</p>
<p>I went to the original email and clicked the link. It worked.</p>
<p>If this is not an email marketing tactic to increase open rates, it certainly could be. This is the first I have thought of it so I don&#8217;t have any data to support it, but it certainly worked for me, the most pessimistic of email openers. My curiosity to learn what happened in the wake of a disaster got my eyeballs on the email and a click to the landing page.</p>
<p>However, using this tactic could easily result in your list becoming irritated or feeling duped. I would caution you to think carefully before implementing something like this and argue you could only use it sparingly to be effective. Keep in mind that a few additional eyeballs on your message is not worth irritating your <a href="http://blog.mindscapesolutions.com/2011/08/09/how-to-build-a-solid-email-list/">list of customers</a> or losing loyal influencers.</p>
<p>Here are a few other proven ways to increase your open rate with great subject lines:</p>
<p style="padding-left: 30px;">▪    Ask questions that your list cares about<br />
▪    Add shocking, counter intuitive claims<br />
▪    Use odd numbers<br />
▪    Add a file type to the subject, such as [ARTICLE] or [VIDEO] or [PDF]<br />
▪    Use scarcity/urgency with expiring offers (ie: &#8220;link expires&#8221;)<br />
▪    Make it fun<br />
▪    Provide a free offer</p>
<p>Are you curious too? Should we test something like this?</p>
<p>Thanks,<br />
Paul Ferrier</p>
<p><em><a href="http://www.mindscape-hm.com/paul-ferrier" target="_blank">Paul Ferrier</a> is the co-founder of <a href="http://www.mindscape-hm.com" target="_blank">MINDSCAPE at Hanon McKendry</a> and a Web design/SEO expert</em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2009/06/11/use-email-marketing-to-increase-your-value/" title="Use Email Marketing to Increase Your Value">Use Email Marketing to Increase Your Value</a></li><li><a href="http://blog.mindscapesolutions.com/2011/08/09/how-to-build-a-solid-email-list/" title="How to Build a Solid Email List">How to Build a Solid Email List</a></li><li><a href="http://blog.mindscapesolutions.com/2009/05/26/ways-to-innovate-your-company-and-boost-your-bottom-line/" title="Ways to Innovate Your Company and Boost Your Bottom Line">Ways to Innovate Your Company and Boost Your Bottom Line</a></li><li><a href="http://blog.mindscapesolutions.com/2009/01/14/email-marketing-work-hard-to-earn-their-business-work-hard-to-keep-their-permission/" title="Email Marketing: Work hard to earn their business. Work hard to keep their permission.">Email Marketing: Work hard to earn their business. Work hard to keep their permission.</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/rkI31dcXMf0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/10/email-subject-lines-increasing-your-open-rate-with-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/10/email-subject-lines-increasing-your-open-rate-with-problems/</feedburner:origLink></item>
		<item>
		<title>Setting Up Goals in Google Analytics</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/tadKRkWvpDE/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/09/setting-up-goals-in-google-analytics/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 17:19:36 +0000</pubDate>
		<dc:creator>Jeff Bell</dc:creator>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Goals]]></category>
		<category><![CDATA[google analytics]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1572</guid>
		<description><![CDATA[In the spirit of the new year, I’d love to see everyone resolve to make sure their website is working. No, I don’t mean I want to make sure you have a website that is functioning. I mean I want to make sure you’re getting value from it. I want to make sure it’s actually [...]]]></description>
			<content:encoded><![CDATA[<p>In the spirit of the new year, I’d love to see everyone resolve to make sure their website is working. No, I don’t mean I want to make sure you have a website that is functioning. I mean I want to make sure you’re getting value from it. I want to make sure it’s actually performing a function! If you have no idea how to do that or what I’m talking about, keep reading.</p>
<p>What’s a goal, you ask? Well, in <a href="http://www.google.com/analytics" target="_blank">Google Analytics</a>, a “goal” is the completion of some task on your site. Though goals can get pretty complicated, I’ll just cover the most basic and popular one here. Too often the optional complexity scares people off. I don’t want to scare you off, I want you to <strong>start measuring the effectiveness</strong> of your site!</p>
<h2><span id="more-1572"></span>Creating a Goal</h2>
<p>Note: These instructions are for the new interface of Google Analytics. I’m a strong believer in using the new version but if you’re using the old version, please see <a href="http://support.google.com/googleanalytics/bin/answer.py?hl=en&amp;answer=55515" target="_blank">Google’s post</a> on the same topic.</p>
<p>For these instructions we’ll be creating a URL Destination goal for a Contact Us form. I am assuming the existence of a “Contact Us” form that sends the visitor to a page named “thank-you.html” after they submit the form.</p>
<ol>
<li><span style="color: #131313;">Log in to Google Analytics and click on the little gear icon on the right <a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/image.png"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/image_thumb.png" alt="image" width="42" height="44" border="0" /></a></span></li>
<li><span style="color: #131313;">Choose the appropriate profile and click on the Goals tab</span></li>
<li><span style="color: #131313;">Select the “+Goal” link under Goal Set 1 (the goal set doesn’t really matter if you’re just getting started and only have a few goals)</span></li>
<li><span style="color: #131313;">Type a name for your goal in the Goal Name box. You’ll want it to be something appropriate like “Contact Form” or something.</span></li>
<li><span style="color: #131313;">Choose URL Destination from the Goal Type options list.</span></li>
<li><span style="color: #131313;">Enter the name of your confirmation page into the Goal URL box. This is the page that the visitor sees AFTER they perform the action you want them to perform. In this case, we’re sending the visitor to a page named “thank-you.html” after they fill out the form. So, for this example, you put in “/thank-you.html”</span></li>
<li><span style="color: #131313;">Select “Head Match” from the Match Type drop down and select the appropriate case sensitivity. Typically this is unchecked.</span></li>
<li><span style="color: #131313;">Enter a goal value if you have one. This is a whole other blog post but I strongly believe in goal values! <a href="mailto:jbell@mindscape-hm.com" target="_blank">Contact me</a> if you want me to write about how to come up with a number for non-transaction type goals.</span></li>
</ol>
<h3>The Finished Product</h3>
<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/image1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/image_thumb1.png" alt="image" width="527" height="431" border="0" /></a></p>
<p>&nbsp;</p>
<h2>Clear As A Bell Summary</h2>
<p>So there you have it. It’s pretty easy to start measuring the effectiveness of your website and there are a TON more options available to you for setting goals. However, this should be enough to begin measuring. Once you’ve gotten some experience under your belt, it’s easy to begin experimenting with other goals in the future. Now with this simple setup, you can begin monitoring your conversion rate, view the goal flow report and take advantage of many other features of Google Analytics that just don’t work until you’ve got some goals created. Happy New Year – and happy measuring!</p>
<p><em><a href="http://www.jeffreybell.com/" target="_blank">Jeff Bell</a> is a Project Manager for <a href="http://www.mindscape-hm.com/" target="_blank">MINDSCAPE at Hanon McKendry</a>. He is also a Google Analytics Qualified Individual.</em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/12/09/high-bounce-rate-check-your-tracking-code/" title="High Bounce Rate? Check Your Tracking Code!">High Bounce Rate? Check Your Tracking Code!</a></li><li><a href="http://blog.mindscapesolutions.com/2011/10/14/google-analytics-link-tagging-2/" title="Google Analytics Link Tagging">Google Analytics Link Tagging</a></li><li><a href="http://blog.mindscapesolutions.com/2011/08/26/measuring-your-seo-efforts/" title="Measuring Your SEO Efforts">Measuring Your SEO Efforts</a></li><li><a href="http://blog.mindscapesolutions.com/2011/08/05/measuring-an-awareness-campaign/" title="Measuring an Awareness Campaign ">Measuring an Awareness Campaign </a></li><li><a href="http://blog.mindscapesolutions.com/2011/07/25/tracking-search-position-in-google-analytics/" title="How to Track Search Position in Google Analytics">How to Track Search Position in Google Analytics</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/tadKRkWvpDE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/09/setting-up-goals-in-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/09/setting-up-goals-in-google-analytics/</feedburner:origLink></item>
		<item>
		<title>Life in the Pit (or How to Pamper Your Programmers)</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/OxtZ6ea1dnE/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/06/life-in-the-pit-or-how-to-pamper-your-programmers/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 14:28:29 +0000</pubDate>
		<dc:creator>Aaron Brander</dc:creator>
				<category><![CDATA[Behind the Curtain]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1556</guid>
		<description><![CDATA[The office of MINDSCAPE at Hanon McKendry is located in the heart of Downtown Grand Rapids. It’s on the sixth floor of an old building next to Van Andel Arena. When the elevators open on the sixth floor, visitors are treated to an open floor plan, a nice reception area, a nifty coffee bar, some [...]]]></description>
			<content:encoded><![CDATA[<p>The office of MINDSCAPE at Hanon McKendry is located in the heart of Downtown Grand Rapids. It’s on the sixth floor of an old building next to Van Andel Arena.</p>
<p>When the elevators open on the sixth floor, visitors are treated to an open floor plan, a nice reception area, a nifty coffee bar, some fancy table and chairs for informal gatherings and a half-dozen nice cubes where information workers are busily executing strategies for website success.</p>
<p>It’s a great place to walk into, and a great atmosphere to work in. The free soft drinks, breakfast foods and a hidden cupboard full of M&amp;Ms and trail mix add to the lure for workers.</p>
<p><span id="more-1556"></span>But there is a hidden danger, one that the programmers who used to inhabit the cubes near the reception area found out first hand.</p>
<p>You see, the lights are really bright and cast harsh glares on their dual monitors. Co-workers and clients bustle to-and-fro past the cubes, catching their eye and interrupting their code flow. Phones rang, impromptu meetings and parties broke out at the coffee bar and the student tours gawked at the programmers, making them feel like white collared monkeys in a zoo.</p>
<p>MINDSCAPE’s merger with Venux in 2010 precipitated a change. We needed more room for the programmers and the six cubes in the entrance area of the sixth floor were no longer enough.</p>
<p>The programmers moved down to an empty office space on the first floor, and it fits their needs much better. Take a gander at the advantages they enjoy, and see if you can figure out why it is called the Pit.</p>
<div class="mceTemp" style="text-align: center;">
<dl id="attachment_1578" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/IMG_0932.jpg"><img class="size-thumbnail wp-image-1578   " style="margin-top: 3px; margin-bottom: 3px; margin-left: 0px; margin-right: 5px;" title="IMG_0932" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/IMG_0932-150x150.jpg" alt="" width="150" height="150" /></a></dt>
<dd class="wp-caption-dd">A look at the &#8220;Pit&#8221;</dd>
</dl>
</div>
<p>1. <strong>No Lights</strong> &#8211; it’s true, this is an advantage. Fluorescent lights are harsh and being able to see your surroundings clearly only entices distraction.</p>
<p>2. <strong>Silence</strong> &#8211; it really is golden. The phones are used rarely, the inhabitants speak softly and everyone understands they walk on hallowed ground. Creation is happening and it is given the respect it duly deserves.</p>
<p>3. <strong>Privacy</strong> &#8211; it is hard to say if no one visits because they do not want to interrupt, or because it has been forgotten what office they are in, or if it’s the four digit combination lock on the door. Either way, the programmers thrive knowing they can put their heads down and get work done.</p>
<div class="mceTemp" style="text-align: center;">
<dl id="attachment_1577" class="wp-caption alignright" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/IMG_0931.jpg"><img class="size-thumbnail wp-image-1577 " style="margin-left: 5px; margin-right: 0px; margin-top: 3px; margin-bottom: 3px;" title="IMG_0931" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/IMG_0931-150x150.jpg" alt="" width="150" height="150" /></a></dt>
<dd class="wp-caption-dd">Programming Nirvana</dd>
</dl>
</div>
<p>4. <strong>Windows</strong> &#8211; There is a lot of natural light during the summer thanks to a number of windows along edge of the office. True, it sometimes brings too much light, but being able to see outside is a pleasant reminder that there is a world beyond the 1’s and 0’s on their computer screen.</p>
<p>It’s nearly a programmer nirvana, although there are some drawbacks.</p>
<p>1. <strong>Bathroom Breaks</strong> &#8211; Here’s a recipe for disaster: put eight intense, focused programmers in an office with no bathroom on that floor and only one key to access the bathroom on the next floor up. They aren’t concerned with simple bodily needs like waste disposal, so when the need makes itself urgently known, mad dashes for the key are inevitable. Then imagine it happens at eight in the morning on an overcast day in the winter. Ahh, you see the issue. There is no light. And there happen to be a lot of chairs in the middle of the room by the conference table. And there is only one key.</p>
<p>2. <strong>Communication</strong> &#8211; Sometimes it’s almost like the Pit is in another country and not just a short elevator ride (or walk down the stairs) from the main office. We had some communication issues for a while, but we are learning to overcome that through repeated training sessions with both the Morlocks and the lofty denizens of the sixth floor, the Eloi. Walking through the door into the Pit is not akin to entering one of Dante’s circles. Riding the elevator up to the sixth floor and having it open to a bright, vibrant atmosphere full of smiling, intelligent, bubbly people is not at all like their nightmare of showing up to do a presentation naked. It will take continual effort, but the gap will be bridged.</p>
<p>(If you ask me, any blog post that manages a reference to two classics like the <a href="http://en.wikipedia.org/wiki/The_Time_Machine">Time Machine</a> and <a href="http://en.wikipedia.org/wiki/Inferno_(Dante)">Dante’s Inferno</a> is a success.)</p>
<p><em><a href="http://aaron-brander.com/" target="_blank">Aaron Brander</a> is the VP of Technology for <a href="http://www.mindscape-hm.com/" target="_blank">MINDSCAPE at Hanon McKendry</a>.</em></p>
<h2  class="related_post_title">Random Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/10/29/the-future-of-facebook/" title="The Future of Facebook">The Future of Facebook</a></li><li><a href="http://blog.mindscapesolutions.com/2011/11/29/looking-for-mobile-analytics-six-sites-to-check-out/" title="Looking for Mobile Analytics? Six Sites to Check Out">Looking for Mobile Analytics? Six Sites to Check Out</a></li><li><a href="http://blog.mindscapesolutions.com/2011/08/15/tips-to-improve-your-article-marketing/" title="Tips to Improve your Article Marketing">Tips to Improve your Article Marketing</a></li><li><a href="http://blog.mindscapesolutions.com/2012/01/03/do-i-need-a-new-website-in-2012/" title="Do I Need a New Website in 2012?">Do I Need a New Website in 2012?</a></li><li><a href="http://blog.mindscapesolutions.com/2011/12/09/high-bounce-rate-check-your-tracking-code/" title="High Bounce Rate? Check Your Tracking Code!">High Bounce Rate? Check Your Tracking Code!</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/OxtZ6ea1dnE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/06/life-in-the-pit-or-how-to-pamper-your-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/06/life-in-the-pit-or-how-to-pamper-your-programmers/</feedburner:origLink></item>
		<item>
		<title>Year Beginning: Focus on Giving</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/T1fw-y2G0I4/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/04/year-beginning-focus-on-giving/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 16:23:27 +0000</pubDate>
		<dc:creator>Rebecca Dutcher</dc:creator>
				<category><![CDATA[Other Pieces]]></category>
		<category><![CDATA[charity]]></category>
		<category><![CDATA[giving]]></category>
		<category><![CDATA[helping others]]></category>
		<category><![CDATA[personal growth]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1503</guid>
		<description><![CDATA[The MINDSCAPErs give back, delivering gifts to families in need through Family Promise of Grand Rapids It’s the start of 2012 &#8211; the holiday charitable giving push is coming to an end. The holidays are one of the biggest times for nonprofits. More than half of their fundraising is done between Thanksgiving and New Year’s Eve. Have [...]]]></description>
			<content:encoded><![CDATA[<h3></h3>
<h3><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2011/12/FamilyPromise_01.jpg"><img class="size-full wp-image-1547 aligncenter" title="FamilyPromise_01" src="http://blog.mindscapesolutions.com/wp-content/uploads/2011/12/FamilyPromise_01.jpg" alt="The MINDSCAPErs give back, delivering gifts to families in need through Family Promise of Grand Rapids" width="497" height="344" /></a></h3>
<p style="font-size: 10pt; text-align: center;">The MINDSCAPErs give back, delivering gifts to families in need through <a href="http://www.familypromisegr.org/home" target="_blank">Family Promise of Grand Rapids</a></p>
<p>It’s the start of 2012 &#8211; the holiday charitable giving push is coming to an end. The holidays are one of the biggest times for nonprofits. More than half of their fundraising is done between Thanksgiving and New Year’s Eve. Have you seen the news updates? During this time of the year Goodwill receives so many of their donation totals.</p>
<p>Why don’t we give more during the year? Why are we compelled to give only at the end of the year? What difference could we make if we gave all year long?</p>
<p><span id="more-1503"></span>This got me thinking about the ways that I have made a difference. Our team at MINDSCAPE has impacted many lives and made a huge difference &#8211; and we&#8217;re not planning on stopping! Our New Year&#8217;s resolution is to continue giving all through 2012.</p>
<ul>
<li>I am a <strong>Big Sister</strong>, and have been for five years now. My “little sister” was in 7th grade when we met. Now she’s a high school junior.</li>
<li><a href="http://www.bbbsmi.org" target="_blank">Big Brothers Big Sisters</a> led me to be a part of their <strong>Bowl For Kids Sale Steering Committee</strong> for the county I live in. Fundraising, sponsors and teams are in my sights now.</li>
<li><strong>Speaking and sharing knowledge</strong> with others. I’ve taught classes at <a href="http://www.growbusiness.org" target="_blank">Grand Rapids Opportunities for Women</a> (GROW) about building a website, how to market your website and other things about SEO/SEM and local search.</li>
<li>Our MINDSCAPE team has <strong>served dinner</strong> at <a href="http://www.rmhwesternmichigan.org/" target="_blank">Ronald McDonald House of Western Michigan</a>. Get ten or so of us in a kitchen and it’s bound to be a good time.</li>
<li>Leaders on our team are on <strong>boards and committees</strong> at local nonprofits, including <a href="http://www.familypromisegr.org" target="_blank">Family Promise</a>.</li>
<li>We <strong>adopted more than three families</strong> for the holidays, providing gifts and necessities to families in our communities.</li>
<li>Others <strong>gave to teens</strong> at St. John’s Home. Teens are are often overlooked when it comes to holiday gifts &#8211; toys are easier to give to little kids. Just showing that you’re thinking of them can make a huge difference in their lives.</li>
<li><strong>Charging “admission.”</strong> We have classes and groups who visit our company and want to hear from our leaders about running a business, how to get into business and work for a company like ours. We’re happy to share our knowledge, and we ask for donations off of a selected nonprofits wish list as the price of admission.</li>
<li>Collected money for a<strong> team member in need</strong>. We had a teammate fall on hard times unexpectedly and were able to help them get back on their feet.</li>
<li><strong>Pass it Forward</strong>, <strong>A Day of Giving</strong> with GRCC. Several folks on our team were a part of this day with GRCC staff and students where we spent a cold, snowy Saturday going around Grand Rapids to do good deeds: give out hugs, hot coffee, help out at organizations, buy lunch and pass it forward.</li>
</ul>
<p>These are a few of the ways that my family, my team at MINDSCAPE and I have given back to our communities in 2011. Some ways are financial, others are by giving our time and sharing our knowledge with others who can benefit from our experience. Bottom line is, we all have something to give, every day of the year. What are your plans to make a difference in 2012?</p>
<p><em><a href="http://www.rebeccadutcher.com/my-philosophy/">Rebecca Dutcher</a> is a business development partner and internet marketing expert for <a href="http://www.mindscape-hm.com/">MINDSCAPE at Hanon McKendry</a></em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/10/18/charging-admission-for-the-greater-good/" title="Charging Admission for the Greater Good">Charging Admission for the Greater Good</a></li><li><a href="http://blog.mindscapesolutions.com/2009/07/03/you-may-think-you-are-helping-others-but-find-out-you-were-the-one-getting-helped/" title="You May Think You Are Helping Others &#8230; But Find Out You Were The One Getting Helped!">You May Think You Are Helping Others &#8230; But Find Out You Were The One Getting Helped!</a></li><li><a href="http://blog.mindscapesolutions.com/2009/07/02/doing-good-and-having-fun-can-transcend-a-language-barrier/" title="Doing Good and Having Fun Can Transcend a Language Barrier">Doing Good and Having Fun Can Transcend a Language Barrier</a></li><li><a href="http://blog.mindscapesolutions.com/2009/06/30/take-a-break-from-focusing-on-your-success-and-focus-on-giving-back/" title="Take a Break from Focusing on Your Success and Focus on Giving Back!">Take a Break from Focusing on Your Success and Focus on Giving Back!</a></li><li><a href="http://blog.mindscapesolutions.com/2009/07/01/what-excuse-are-you-using-to-not-improve-your-situation/" title="What Excuse are You Using to Not Improve Your Situation?">What Excuse are You Using to Not Improve Your Situation?</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/T1fw-y2G0I4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/04/year-beginning-focus-on-giving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/04/year-beginning-focus-on-giving/</feedburner:origLink></item>
		<item>
		<title>Do I Need a New Website in 2012?</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/oTwxTgepVGo/</link>
		<comments>http://blog.mindscapesolutions.com/2012/01/03/do-i-need-a-new-website-in-2012/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 14:37:47 +0000</pubDate>
		<dc:creator>Erin Jones</dc:creator>
				<category><![CDATA[Internet Marketing]]></category>
		<category><![CDATA[2012 website]]></category>
		<category><![CDATA[internet marketing]]></category>
		<category><![CDATA[new website]]></category>
		<category><![CDATA[successful website]]></category>
		<category><![CDATA[Web strategy]]></category>
		<category><![CDATA[Website Development]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1505</guid>
		<description><![CDATA[&#160; It’s 2012. Is this the year your website will work as hard as you do? A well-planned, thoughtfully designed website that positions your business to grow like crazy using the power of the Web isn’t cheap. For a business owner or manager, it can be difficult to know just when to approve the investment [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/20121.jpg"><img class="aligncenter size-full wp-image-1509" title="2012" src="http://blog.mindscapesolutions.com/wp-content/uploads/2012/01/20121.jpg" alt="" width="497" height="229" /></a></p>
<p>It’s 2012. Is this the year your website will work as hard as you do?</p>
<p>A well-planned, thoughtfully designed website that positions your business to grow like crazy using the power of the Web isn’t cheap. For a business owner or manager, it can be difficult to know just when to approve the investment in a new website. Below are some thought starters on when to pony-up.</p>
<p><span id="more-1505"></span><strong>How important is a website to your business? </strong>Savvy B2C and B2B buyers are starting their buying processes on the Web – from researching companies to gathering product information to searching for specific items to purchase online. A website is likely the first (and often ONLY) impression of your business that a potential client uses to form an opinion. A professional looking website is absolutely necessary. Beyond that, does your website quickly show a current or potential customer what problem you can solve for them?</p>
<p><strong>What can your website do for you?</strong> Your website can do much more than simply live online as a company brochure. It is important to be found when people are searching online for the product or service you offer. But what if your business isn’t coming up on the first page of a Google search engine results page? It’d be a good idea to look into a new site. Are you selling online? If not, could you? Can your website save labor costs by having a robust FAQ or info request section, saving your people time on the phone? A good Web marketing partner will help you understand all that your website could do to boost revenue and save costs.</p>
<p><strong>What are your competitors doing online?</strong> It’s hard to win online without a good understanding of what you’re competing against. Furthermore, if your competitors are growing market share by virtue of a strong online presence and your business seems to be lagging, it’s probably time to investigate improving your website.</p>
<p><strong>How long has it been since your last website update? </strong>If it’s been more than a few years since your last major redesign, it’s a good idea to revisit your overall online presence. What your customers and potential customers expect from a website has changed drastically over just the past few years, and if your website isn’t delivering you’ll find yourself working harder to get the same results.</p>
<p>If you’re ready to look into having a world-class team help you grow your business by strengthening your online presence, let’s talk.</p>
<p><em>Erin Jones is a business development partner for <a href="http://www.mindscape-hm.com/" target="_blank">MINDSCAPE at Hanon McKendry</a> </em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2008/03/28/proper-mindset-part2/" title="Developing the proper mindset to maximize your online revenue (PART 2)">Developing the proper mindset to maximize your online revenue (PART 2)</a></li><li><a href="http://blog.mindscapesolutions.com/2011/12/19/why-blog/" title="Why Blog?">Why Blog?</a></li><li><a href="http://blog.mindscapesolutions.com/2011/11/09/get-your-website-content-out-the-door-on-time/" title="Get Your Website Content Out the Door on Time ">Get Your Website Content Out the Door on Time </a></li><li><a href="http://blog.mindscapesolutions.com/2011/10/20/listening-doesnt-stop-at-your-website/" title="Listening Doesn&#8217;t Stop at Your Website">Listening Doesn&#8217;t Stop at Your Website</a></li><li><a href="http://blog.mindscapesolutions.com/2010/09/01/how-much-does-a-website-cost/" title="How much does a website cost?">How much does a website cost?</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/oTwxTgepVGo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2012/01/03/do-i-need-a-new-website-in-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2012/01/03/do-i-need-a-new-website-in-2012/</feedburner:origLink></item>
		<item>
		<title>Content = Publishing</title>
		<link>http://feedproxy.google.com/~r/mastermindshare/nqqM/~3/B-1rJ0Ff78s/</link>
		<comments>http://blog.mindscapesolutions.com/2011/12/22/content-publishing/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 19:46:05 +0000</pubDate>
		<dc:creator>Renee Achterhof</dc:creator>
				<category><![CDATA[Content]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[publishing]]></category>

		<guid isPermaLink="false">http://blog.mindscapesolutions.com/?p=1493</guid>
		<description><![CDATA[People determine the success of a business. They ultimately decide whether a company, business or organization thrives or is driven into the ground headfirst. So wouldn’t you want to do everything you can for your people and provide them an outlet for their needs? Don’t know how? The solution is very simple: people crave compelling [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mindscapesolutions.com/wp-content/uploads/2011/12/stamp.jpg"><img class="aligncenter size-full wp-image-1496" title="stamp" src="http://blog.mindscapesolutions.com/wp-content/uploads/2011/12/stamp.jpg" alt="" width="497" height="300" /></a></p>
<p>People determine the success of a business. They ultimately decide whether a company, business or organization thrives or is driven into the ground headfirst. So wouldn’t you want to do everything you can for your people and provide them an outlet for their needs? Don’t know how? The solution is very simple: people crave compelling content.</p>
<p><strong>People love stories.</strong></p>
<p><span id="more-1493"></span></p>
<p>So give them stories! Too many businesses are afraid to do this. Maybe they’re afraid of letting out a secret, maybe fear of rejection…whatever your reason for not compiling stories, ignore it! There’s absolutely no shame in putting yourself out there and letting people see the guts of your business – in fact, the complete opposite is true. When they see that real people, just like them, are working as hard as they are to achieve a goal or help a customer, they will instantly see your business as relatable. Providing a looking glass into your organization by telling stories will help people connect with you on a real level. And people like real stuff.</p>
<p>I see websites and social media outlets all the time that lack any sense of content. Sure, they’ll have links abound and copy that fills up their entire real estate, but where’s the personality? Once people have seen your site content, they’ve seen it. There’s really no reason for them to visit again, unless there’s engaging, original content that is useful in their lives. Providing fresh and relevant content by telling stories will help them see you as a source for their everyday needs.</p>
<p><strong>People are publishers.</strong></p>
<p>People naturally love to share. Social media sites like Facebook, Twitter and YouTube allow anyone to make their lives public. They want to publish. Their friends, followers or viewers seek information that is interesting to them. Take this approach with your business – find some great people who can publish great content for your organization. The world is an open door. You just have to grasp and share your content with it.</p>
<p><strong>Publishers provide content.</strong></p>
<p>With the right people in place who are great at working as a team, your content department will become a buzzing publishing department. Publishing frequent, quality content on a continuous basis to the right channels will provide users a platform to refer back to when they need information. Publishing this content in a form that is relevant, informative and understandable can help your content be published on an even larger spectrum.</p>
<p><em><a href="http://reneediation.blogspot.com" target="_blank">Renee Achterhof</a> is a content developer for <a href="http://www.mindscape-hm.com/">MINDSCAPE at Hanon McKendry</a></em></p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://blog.mindscapesolutions.com/2011/12/19/why-blog/" title="Why Blog?">Why Blog?</a></li><li><a href="http://blog.mindscapesolutions.com/2011/12/02/online-and-print-press-releases-whats-the-difference/" title="Online and Print Press Releases: What’s the Difference?">Online and Print Press Releases: What’s the Difference?</a></li><li><a href="http://blog.mindscapesolutions.com/2011/11/21/are-you-marketing-via-video/" title="Are You Marketing Via Video?">Are You Marketing Via Video?</a></li><li><a href="http://blog.mindscapesolutions.com/2011/11/09/get-your-website-content-out-the-door-on-time/" title="Get Your Website Content Out the Door on Time ">Get Your Website Content Out the Door on Time </a></li><li><a href="http://blog.mindscapesolutions.com/2011/10/28/the-dog-your-dog-could-be-like/" title="The Dog Your Dog Could Be Like">The Dog Your Dog Could Be Like</a></li></ul><img src="http://feeds.feedburner.com/~r/mastermindshare/nqqM/~4/B-1rJ0Ff78s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mindscapesolutions.com/2011/12/22/content-publishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.mindscapesolutions.com/2011/12/22/content-publishing/</feedburner:origLink></item>
	</channel>
</rss>

