<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Dovetail Software Blogs</title><link>http://blogs.dovetailsoftware.com/blogs/default.aspx</link><description>Blogs at Dovetail Software</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dovetailsoftware/Bftb" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Industry Insight: Social media</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/LBhCnAB41WU/industry-insight-social-media.aspx</link><pubDate>Thu, 05 Nov 2009 21:46:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11985</guid><dc:creator>gsherman</dc:creator><slash:comments>0</slash:comments><description>&lt;span class="Apple-style-span" style="font-family:'Times New Roman';font-size:medium;"&gt;&lt;p class="style9" style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;The impact of social media on business has far reaching effects and in all directions. Consumers around the globe share their opinions about products with anyone, anywhere. The popular digital playground Twitter recognized the impact of digital media on the marketplace so much that they now offer a vehicle for companies to see what consumers say about their products. This trend is not going to recede, but broaden and expand.&lt;/p&gt;&lt;p class="style9" style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;How does the influence of social media guide and direct the customer service and support industry? Are there ways to mitigate damaging “tweets”? How about capitalize on positive blog posts?&lt;/p&gt;&lt;p class="style9" style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;We'd love to hear what you think, so leave a comment below.&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11985" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/social+media/default.aspx">social media</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/twitter/default.aspx">twitter</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/11/05/industry-insight-social-media.aspx</feedburner:origLink></item><item><title>Adding a Custom Dialog To Your Wix Installer</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/lUgtqLcwRAE/adding-a-custom-dialog-to-your-wix-installer.aspx</link><pubDate>Wed, 04 Nov 2009 22:44:02 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11984</guid><dc:creator>kmiller</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/al-kaiser/3654625032/"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="installer ninja" border="0" alt="installer ninja" align="right" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_62488801.png" width="195" height="480" /&gt;&lt;/a&gt;Recently I made the move to Wix3 for a couple of projects and I have been quite happy. One of the things that has been simplified is adding a a custom step into the installer process. &lt;/p&gt;  &lt;p&gt;I’ll leave the heavy lifting of how to insert the custom dialog to &lt;a href="http://www.dotnetjack.com/" target="_blank"&gt;Jan Schepens’&lt;/a&gt; post &lt;a href="http://www.dotnetjack.com/post/Making-a-custom-setup-dialog-using-WiX-30.aspx" target="_blank"&gt;Making a custom setup dialog using WiX 3.0&lt;/a&gt;. He tells you how to customize your UI layout and insert a new dialog into the process. Read this post it explains it well. Neil Sleightholm has a similar post &lt;a href="http://neilsleightholm.blogspot.com/2008/08/customised-uis-for-wix.html" target="_blank"&gt;Customised UI’s For Wix&lt;/a&gt; that is about removing dialogs from the layout.&lt;/p&gt;  &lt;p&gt;I’m going to be straight with you. This post is mainly for myself. I want to have this resource six months from now when I need to do the same thing again. &lt;/p&gt;  &lt;h3&gt;Wiring Up Your Dialog&lt;/h3&gt;  &lt;p&gt;Jan does a good job with his post so good that I want to leave it mostly alone. I do want to underscore the need to wire up the dialog into the flow of the UI for going in the &lt;strong&gt;Back&lt;/strong&gt; and &lt;strong&gt;Next&lt;/strong&gt; wizard directions. &lt;/p&gt;  &lt;pre class="brush: xml; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;Back&amp;quot; Event=&amp;quot;NewDialog&amp;quot; Value=&amp;quot;LicenseAgreementDlg&amp;quot;&amp;gt;1&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;Next&amp;quot; Event=&amp;quot;SetTargetPath&amp;quot; Value=&amp;quot;[WIXUI_INSTALLDIR]&amp;quot; Order=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;Next&amp;quot; Event=&amp;quot;DoAction&amp;quot; Value=&amp;quot;WixUIValidatePath&amp;quot; Order=&amp;quot;2&amp;quot;&amp;gt;NOT WIXUI_DONTVALIDATEPATH&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;Next&amp;quot; Event=&amp;quot;SpawnDialog&amp;quot; Value=&amp;quot;InvalidDirDlg&amp;quot; Order=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&amp;lt;&amp;gt;&amp;quot;1&amp;quot;]]&amp;gt;&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;Next&amp;quot; Event=&amp;quot;NewDialog&amp;quot; Value=&amp;quot;webSiteLocator&amp;quot; Order=&amp;quot;4&amp;quot;&amp;gt;WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID=&amp;quot;1&amp;quot;&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;ChangeFolder&amp;quot; Property=&amp;quot;_BrowseProperty&amp;quot; Value=&amp;quot;[WIXUI_INSTALLDIR]&amp;quot; Order=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;InstallDirDlg&amp;quot; Control=&amp;quot;ChangeFolder&amp;quot; Event=&amp;quot;SpawnDialog&amp;quot; Value=&amp;quot;BrowseDlg&amp;quot; Order=&amp;quot;2&amp;quot;&amp;gt;1&amp;lt;/Publish&amp;gt;

&amp;lt;Publish Dialog=&amp;quot;webSiteLocator&amp;quot; Control=&amp;quot;Back&amp;quot; Event=&amp;quot;NewDialog&amp;quot; Value=&amp;quot;InstallDirDlg&amp;quot;&amp;gt;1&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;webSiteLocator&amp;quot; Control=&amp;quot;Next&amp;quot; Event=&amp;quot;NewDialog&amp;quot; Value=&amp;quot;VerifyReadyDlg&amp;quot;&amp;gt;1&amp;lt;/Publish&amp;gt;

&amp;lt;Publish Dialog=&amp;quot;VerifyReadyDlg&amp;quot; Control=&amp;quot;Back&amp;quot; Event=&amp;quot;NewDialog&amp;quot; Value=&amp;quot;webSiteLocator&amp;quot; Order=&amp;quot;1&amp;quot;&amp;gt;NOT Installed&amp;lt;/Publish&amp;gt;
&amp;lt;Publish Dialog=&amp;quot;VerifyReadyDlg&amp;quot; Control=&amp;quot;Back&amp;quot; Event=&amp;quot;NewDialog&amp;quot; Value=&amp;quot;MaintenanceTypeDlg&amp;quot; Order=&amp;quot;2&amp;quot;&amp;gt;Installed&amp;lt;/Publish&amp;gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;The key when inserting your dialog is to also rewire the NewDiaqlog events from the previous and next dialogs in the wizard to point at your new dialog.&lt;/p&gt;

&lt;h3&gt;Creating the Custom Dialog&lt;/h3&gt;

&lt;p&gt;Hate to break this to you the fun part is over. The trick with the custom dialog is actually creating the custom dialog. Editing Xml user interfaces is not fun and the edit/test cycle between building your Wix installer and manually testing it is painful. I went looking for an interactive dialog editor and found &lt;a href="http://wixedit.sourceforge.net/"&gt;WixEdit&lt;/a&gt;. Suddenly a lot of the pain went away. WixEdit is still a bit rough here are a couple of tips.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Copy the WixEdit exe and dlls into your Wix doc directory to make it happy.&lt;/li&gt;

  &lt;li&gt;WixEdit doesn’t currently like the Wix3 namespace. I could not get it to open my .wxs files. If you have an existing dialog you wish to edit it... Create a new project with WixEdit and copy your Dialog Xml into that project file. Then copy the resulting dialog xml back out when you are done. Ulgy but better than nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_5259433D.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_4D0A5C8C.png" width="543" height="772" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;Bonus: Enabling and Disabling Controls Based On A Checkbox&lt;/h3&gt;

&lt;p&gt;I wanted the dialog to enable the text fields when a checkbox is pressed. The trick to this is having conditions on the controls toggling the control’s enabled state based on the checkbox’s property.&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;  &amp;lt;Control Id=&amp;quot;headerLabel&amp;quot; Type=&amp;quot;Text&amp;quot; X=&amp;quot;20&amp;quot; Y=&amp;quot;126&amp;quot; Width=&amp;quot;290&amp;quot; Height=&amp;quot;13&amp;quot; Text=&amp;quot;Host Header Name&amp;quot; /&amp;gt;
  &amp;lt;Control Id=&amp;quot;webSiteHeader&amp;quot; Type=&amp;quot;Edit&amp;quot; Property=&amp;quot;WEBSITEHEADER&amp;quot;
           X=&amp;quot;20&amp;quot; Y=&amp;quot;139&amp;quot; Width=&amp;quot;320&amp;quot; Height=&amp;quot;15&amp;quot;
           Text=&amp;quot;[WEBSITEHEADER]&amp;quot; Disabled=&amp;quot;yes&amp;quot;&amp;gt;
    &amp;lt;Condition Action=&amp;quot;disable&amp;quot;&amp;gt;&amp;lt;![CDATA[CUSTOMIZEWEBSITE &amp;lt;&amp;gt; &amp;quot;yes&amp;quot;]]&amp;gt;&amp;lt;/Condition&amp;gt;
    &amp;lt;Condition Action=&amp;quot;enable&amp;quot;&amp;gt;&amp;lt;![CDATA[CUSTOMIZEWEBSITE = &amp;quot;yes&amp;quot;]]&amp;gt;&amp;lt;/Condition&amp;gt;
  &amp;lt;/Control&amp;gt;

  &amp;lt;Control Type=&amp;quot;CheckBox&amp;quot; Id=&amp;quot;customizeWebSiteLocation&amp;quot; Property=&amp;quot;CUSTOMIZEWEBSITE&amp;quot;
           Width=&amp;quot;120&amp;quot; Height=&amp;quot;17&amp;quot; X=&amp;quot;240&amp;quot; Y=&amp;quot;56&amp;quot; 
           Text=&amp;quot;Customize Website Binding&amp;quot; CheckBoxValue=&amp;quot;yes&amp;quot;&amp;gt;
    &amp;lt;Condition Action=&amp;quot;show&amp;quot;&amp;gt;NOT Installed&amp;lt;/Condition&amp;gt;
  &amp;lt;/Control&amp;gt;&lt;/pre&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11984" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/wix/default.aspx">wix</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/11/04/adding-a-custom-dialog-to-your-wix-installer.aspx</feedburner:origLink></item><item><title>Simplification</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/U6YYYe7LGpw/simplification.aspx</link><pubDate>Tue, 03 Nov 2009 21:35:49 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11982</guid><dc:creator>kmiller</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Just replaced this VB (shudder) code&lt;/p&gt;  &lt;pre class="brush: vb; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;' Build up additional info string using
'  research time as formatted string
addnl_info = &amp;quot;Elapsed time = &amp;quot;
t_long = research_time
If t_long &amp;gt; 86400 Then
	t_long2 = t_long \ 86400
Else
	t_long2 = 0
End If
t_long = t_long - t_long2 * 86400
addnl_info = addnl_info &amp;amp; VB6.Format(t_long2, &amp;quot;000&amp;quot;) &amp;amp; &amp;quot; &amp;quot;
If t_long &amp;gt; 3600 Then
	t_long2 = t_long \ 3600
Else
	t_long2 = 0
End If
t_long = t_long - t_long2 * 3600
addnl_info = addnl_info &amp;amp; VB6.Format(t_long2, &amp;quot;00&amp;quot;) &amp;amp; &amp;quot;:&amp;quot;
If t_long &amp;gt; 60 Then
	t_long2 = t_long \ 60
Else
	t_long2 = 0
End If
t_long = t_long - t_long2 * 60
addnl_info = addnl_info &amp;amp; VB6.Format(t_long2, &amp;quot;00&amp;quot;) &amp;amp; &amp;quot;.&amp;quot;&lt;/pre&gt;
With this VB (shudder) code:

&lt;pre class="brush: vb; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;addnl_info = &amp;quot;Elapsed time = &amp;quot; &amp;amp; GetElapsedTime(research_time) &amp;amp; &amp;quot;.&amp;quot;

...

Private Function GetElapsedTime(ByVal researchTimeInSeconds As Integer) As String

	Dim timeSpan As TimeSpan = timeSpan.FromSeconds(researchTimeInSeconds)

	Return String.Format(&amp;quot;{0:000} {1:00}:{2:00}&amp;quot;, timeSpan.Days, timeSpan.Hours, timeSpan.Minutes)

End Function&lt;/pre&gt;

&lt;p&gt;Ah that’s better.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11982" width="1" height="1"&gt;</description><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/11/03/simplification.aspx</feedburner:origLink></item><item><title>A week of Monospace and Innotech</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/qZUQAbas1F0/a-week-of-monospace-and-innotech.aspx</link><pubDate>Mon, 02 Nov 2009 19:00:06 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11980</guid><dc:creator>gsherman</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I spent last week at the &lt;a href="http://monospace.us/"&gt;Monospace&lt;/a&gt; conference, which was held concurrently with the annual Innotech conference here in Austin.&lt;/p&gt;  &lt;h2&gt;Monospace&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/monospace_logo_4DDABD4D.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:10px 0px 10px 10px;display:inline;border-top:0px;border-right:0px;" title="monospace_logo" border="0" alt="monospace_logo" align="right" src="http://blogs.dovetailsoftware.com/blogs/gsherman/monospace_logo_thumb_109A0886.jpg" width="125" height="108" /&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;This was the first year for &lt;a href="http://monospace.us/"&gt;Monospace&lt;/a&gt;, and it was fantastic. &lt;a href="http://blog.scottbellware.com/"&gt;Scott Bellware&lt;/a&gt; did a great job of organizing the conf, bringing in top notch attendees, and providing fun after-hours activities as well. &lt;a href="http://tirania.org/blog/"&gt;Miguel de Icaza&lt;/a&gt; (founder of the &lt;a href="http://www.mono-project.com"&gt;Mono project&lt;/a&gt;) attended, along with a good chunk of his team. There were plenty of local folks (including a few of us from Dovetail), folks from Microsoft, as well as a bunch of international developers as well. It was an incredible bunch of super-smart folks, all willing to share and help others kick ass. &lt;/p&gt;  &lt;p&gt;From the Monospace website:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Monospace is the conference that teaches .NET software developers and organizations how to use the Mono framework and Microsoft .NET to leverage existing investments in skills and applications on a broader array of platforms for a broader array of opportunities.&lt;/p&gt;    &lt;p&gt;The Mono framework lets you take advantage of not only Windows, but also Linux, Mac, iPhone, Android, and comprehensive cloud computing platforms like Amazon's EC2, and even special-purpose hardware platforms.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For those not familiar with Mono, its a cross platform, open source .NET development framework. The &lt;a href="http://www.mono-project.com/FAQ:_General"&gt;Mono FAQ&lt;/a&gt; is a good place to start. &lt;/p&gt;  &lt;p&gt;I’m extremely impressed with what the Mono team has accomplished. &lt;/p&gt;  &lt;p&gt;The conference was 2 days of workshops followed by 2 days of Open Space. Since a good deal of us attendees were .NET developers, we were able to get acquainted with Mono, MonoDevelop and MonoTouch in the workshops, and then dive into various topics during the Open Space. There were open space topics on &lt;a href="http://www.codeplex.com/MEF"&gt;MEF&lt;/a&gt;, iPhone development, adding scripting to your application, &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt;, &lt;a href="http://nhforge.org/Default.aspx"&gt;NHibernate&lt;/a&gt;, and some good discussions around legal aspects of using open-source software. &lt;/p&gt;  &lt;p&gt;I loved the combination of workshops + Open Space. &lt;/p&gt;  &lt;h3&gt;MonoDevelop&lt;/h3&gt;  &lt;p&gt;I got to see my first glimpse of MonoDevelop. Impressive. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://monodevelop.com/"&gt;MonoDevelop&lt;/a&gt; is an IDE primarily designed for C# and other .NET languages. MonoDevelop enables developers to quickly write desktop and ASP.NET Web applications on Linux. MonoDevelop makes it easy for developers to port .NET applications created with Visual Studio to Linux and to maintain a single code base for all platforms.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;MonoTouch&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://monotouch.net/"&gt;MonoTouch&lt;/a&gt; was one of the biggest hits of the show. &lt;/p&gt;  &lt;p&gt;From the MonoTouch website:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;MonoTouch allows developers to create C# and .NET based applications that run on Apple's iPhone and Apple's iPod Touch devices, while taking advantage of the iPhone APIs and reusing both code and libraries that have been built for .NET, as well as existing skills.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It was pretty bad ass seeing .NET developers writing C# code to create iPhone apps. &lt;/p&gt;  &lt;h3&gt;SUSE Studio&lt;/h3&gt;  &lt;p&gt;We also saw &lt;a href="http://susestudio.com/"&gt;SUSE Studio&lt;/a&gt; in action. Miguel did a great demo when he showed building an application in Visual Studio in Windows, from VS, compiling/building in on Linux which created a RPM package. Uploading that to the cloud, using SUSE Studio to create a custom Linux distro, and running the just built app in the cloud. This custom distro can also be pushed to EC2. Totally. Bad. Ass. &lt;/p&gt;  &lt;h2&gt;InnoTech&lt;/h2&gt;  &lt;p&gt;In the midst of all the Monospace goodness, the &lt;a href="http://www.innotechconference.com/austin/"&gt;InnoTech&lt;/a&gt; conference happened on Thursday. I think this is my 4th year attending InnoTech here in Austin. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;InnoTech is an annual conference and exhibition built specifically for business and technology executives, highlighting the region's innovation and technology development opportunities by showcasing pioneering products and services.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;There were lots of talks on social media (no surprise), cloud computing (again, no surprise), as well as some technical talks including &lt;em&gt;ASP.NET MVC&lt;/em&gt;, &lt;em&gt;database change management&lt;/em&gt;, and one on &lt;em&gt;Operational Transformation: The Key to Understanding Google Wave&lt;/em&gt;. Great stuff. &lt;/p&gt;  &lt;p&gt;A wide range of topics – great for both business and technical folks.&lt;/p&gt;  &lt;h3&gt;Exhibitors&lt;/h3&gt;  &lt;p&gt;One of the fun parts of InnoTech is walking the exhibit floor, getting to see new products, and engage in good discussions. &lt;/p&gt;  &lt;p&gt;It was very cool to see multiple CRM companies exhibiting this year: &lt;a href="http://www.parature.com/"&gt;Parature&lt;/a&gt;, &lt;a href="http://txt4crm.com"&gt;txt4crm&lt;/a&gt;, and &lt;a href="http://www.teamsupport.com/"&gt;TeamSupport&lt;/a&gt;. This was my first exposure to TeamSupport – they have a nice product.&lt;/p&gt;  &lt;h3&gt;Get out of your office&lt;/h3&gt;  &lt;p&gt;If you haven’t attended InnoTech before – I would recommend it – especially if its local. Not only is it a great way to see and hear about new products and technology, but it’s an opportunity to get out and meet other tech pros, bounce some ideas around, and stay in touch with the ever-changing technology world that we live in.&lt;/p&gt;  &lt;p&gt;Whenever I go to a conference, my Idea faucet seems to open up wide. I’m constantly jotting down new ideas – I just wish I had time and resources to do them all!&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11980" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/austin/default.aspx">austin</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/conference/default.aspx">conference</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/innotech/default.aspx">innotech</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/mono/default.aspx">mono</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/11/02/a-week-of-monospace-and-innotech.aspx</feedburner:origLink></item><item><title>Basic Web Application Loading With JMeter</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/Ad6CN-q5c_4/fun-with-jmeter.aspx</link><pubDate>Fri, 23 Oct 2009 22:10:17 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11977</guid><dc:creator>kmiller</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_741023E8.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 0px 15px;display:inline;border-top:0px;border-right:0px;" title="Apache JMeter Logo" border="0" alt="Apache JMeter Logo" align="right" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_39B4AE07.png" width="355" height="202" /&gt;&lt;/a&gt;I needed to load test one of our web applications today. Load testing is not something I am too familiar with. A search turned up a list of open source load testing tools. At the top of the list was &lt;a href="http://jakarta.apache.org/jmeter/"&gt;Apache JMeter&lt;/a&gt; which I decided to gave a shot based on the awesomeness of the Apache project. I am not quite blown away but I was able to get a load test up and going in about 15 minutes which makes me very very happy. Here is what I did to create a load tester for our Dovetail Seeker &lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/search/default.aspx"&gt;web search service&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;Get It&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi"&gt;Download JMeter&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Extract it to a directory and run the &lt;strong&gt;.\bin\jmeter.bat&lt;/strong&gt; batch file. You’ll likely need Java installed for this to work. &lt;/li&gt;    &lt;li&gt;Now weren’t you afraid after seeing &lt;u&gt;Apache&lt;/u&gt; that some horrible text file would need to be edited? Thankfully this is not the case.&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Set It Up&lt;/h4&gt;  &lt;p&gt;Next create a test plan by right clicking on the test plan icon in the tree view at the left and add a &lt;strong&gt;Thread Group&lt;/strong&gt;. Set the Number of Threads to &lt;strong&gt;10&lt;/strong&gt;&amp;#160; ramp it up in &lt;strong&gt;5&lt;/strong&gt; seconds.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_3FFB8495.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Thread Group" border="0" alt="Thread Group" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_7EED0530.png" width="644" height="265" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Right click on Thread Group and add a &lt;strong&gt;Loop Logic Controller&lt;/strong&gt; which is set to loop &lt;strong&gt;Forever&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_28ED0359.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Loop Controller" border="0" alt="Loop Controller" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_41106DB4.png" width="644" height="173" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Right click on Loop Controller and add a &lt;strong&gt;Http Request Sampler &lt;/strong&gt;setup the hostname, port, path appropriately. &lt;/p&gt;  &lt;p&gt;For my purposes I need to Also you’ll need to add a query string representing the search query I wish to do against the server. As I don’t really want to do the same query over and over again we will use a variable to push in value to each request that is made. This apparently is done using (n)ant like notation. &lt;strong&gt;${variable_name}&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_55298A3D.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_3EF36EEB.png" width="590" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;We need to define the &lt;strong&gt;query_value&lt;/strong&gt; variable which will be pushing the search query into each request. Right click on the Http Request and add a &lt;strong&gt;Random Variable Config Element&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_1D93C94F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Random Variable" border="0" alt="Random Variable" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_7CA056A7.png" width="644" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Finally it would be handy to see what’s going on. To do that add a Listener. I found the Summary listener is handy. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/image_5BACE400.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Reporting" border="0" alt="Reporting" src="http://blogs.dovetailsoftware.com/blogs/kmiller/image_thumb_0F74DA52.png" width="644" height="281" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Run it&lt;/h4&gt;  &lt;p&gt;To start the load test hit the Run menu and click on &lt;strong&gt;Start&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;How do you know it is working? If you see the Error % column spike up to 100% you know something is wrong. Make sure you have your host and path right. You can also check your logs to see if you are getting correct requests.&lt;/p&gt;  &lt;h4&gt;Fun with Load Testing&lt;/h4&gt;  &lt;p&gt;I am likely doing something wrong here. I am no web test expert I just needed to load up a web application to see how a tangential mechanism behaved when the website was under load. There is a lot more depth to this tool. For example check out the &lt;strong&gt;View Results Tree&lt;/strong&gt; Listener to get a trace of each request. Handy. &lt;/p&gt;  &lt;p&gt;Hopefully you get the idea here you can create more than one Thread Group and create chains of Http Requests. You can control cookies and traffic numbers and all sorts of crazy things. If I was a tester I would be having much more fun but then I also might know a better tool than this. All I know is I went from zero to hitting my app with lots of users per second in 15 minutes.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11977" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/testing/default.aspx">testing</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/10/23/fun-with-jmeter.aspx</feedburner:origLink></item><item><title>Dovetail Expands Marketing Group</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/bNfBby5nSwg/dovetail-expands-marketing-group.aspx</link><pubDate>Thu, 22 Oct 2009 12:23:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11976</guid><dc:creator>rcoleman</dc:creator><slash:comments>0</slash:comments><description>I am pleased to announce that Lisa McDonald has joined Dovetail as Marketing Communications Manager based in our Austin, TX office.&amp;nbsp; Lisa brings to Dovetail&amp;nbsp;experience in various Marketing activities and will be managing initiatives to extend Dovetail's presence in the CRM market space, creation of product marketing content, and interaction with customers and partners.&amp;nbsp; Lisa is a graduate of the University of Texas at Austin with a Masters of Science in Technology Commercialization.&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11976" width="1" height="1"&gt;</description><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/rusty_coleman/archive/2009/10/22/dovetail-expands-marketing-group.aspx</feedburner:origLink></item><item><title>Dovetail at CCNG Dallas Event</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/7nuGMbtFO9o/dovetail-at-ccng-dallas-event.aspx</link><pubDate>Wed, 14 Oct 2009 20:30:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11973</guid><dc:creator>rcoleman</dc:creator><slash:comments>2</slash:comments><description>&lt;P&gt;Dovetail will be sponsoring and presenting at the upcoming CCNG event in Dallas on Wednesday, October 21st at New Benefits&amp;nbsp;office location.&amp;nbsp; For CCNG members attending, we look forward to seeing you there.&amp;nbsp; For others interested in attending check the details at&amp;nbsp;&lt;A href="http://www.ccng.com/i4a/pages/index.cfm?pageid=4555"&gt;http://www.ccng.com/i4a/pages/index.cfm?pageid=4555&lt;/A&gt;.&amp;nbsp; This is a great networking opportunity.&lt;/P&gt;
&lt;P&gt;Rusty&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11973" width="1" height="1"&gt;</description><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/rusty_coleman/archive/2009/10/14/dovetail-at-ccng-dallas-event.aspx</feedburner:origLink></item><item><title>What Is Under The Hood In Dovetail Mobile?</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/Mavev4aRzr0/what-is-under-the-hood-in-dovetail-mobile.aspx</link><pubDate>Tue, 13 Oct 2009 20:37:06 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11971</guid><dc:creator>kmiller</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Dovetail Mobile is our first shipping ASP.NET MVC based application. Because this is a newer technology one of our customers asked for some guidance on customizing the application. The following is a distillation of that guidance which I hope might come in handy for future Mobile customers.&lt;/p&gt;  &lt;h3&gt;Customizing Dovetail Mobile (Agent Lite)&lt;/h3&gt;  &lt;p&gt;Dovetail Mobile and its desktop skinned alter ego Agent Lite is a &lt;a href="http://www.asp.net/mvc/"&gt;ASP.Net MVC 1.0&lt;/a&gt; application. There are lots of reading and tutorial resources available that will translate directly to understanding how this type of application works and thus how to customize Dovetail Mobile. It is important to understand Model View Controller based web applications to know where the part you wish to change is most likely found.&lt;/p&gt;  &lt;h4&gt;Controllers&lt;/h4&gt;  &lt;p&gt;If you need to customize behavior you will likely need to add or modify controllers and their related views.&lt;/p&gt;  &lt;p&gt;We provide a place to add customized versions of your controllers. Please take a look at the ReadMe.txt under the &lt;strong&gt;controllers\CustomControllers&lt;/strong&gt; directory for guidance on how this hook works. You are not required to put your customization in the custom controllers directory. In other words you could easily modify the baseline code and be fine. We put the custom folder hook in there to help keep customized code sequestered from the baseline.&lt;/p&gt;  &lt;p&gt;Mobile uses dependency injection (DI) to make the controller behavior easier to test and thus maintain. The responsibility of creating controller classes and their dependencies is turned over to a tool called &lt;a href="http://dotnetslackers.com/articles/designpatterns/IntroductionToStructureMap.aspx"&gt;StructureMap&lt;/a&gt;.&amp;#160; The advantage of having StructureMap handle the complexity of controller creation is in isolation of controllers from their dependencies which in turn facilitates testability and also tends to keep the controllers thin. Elijah Manor has a post on using &lt;a href="http://elijahmanor.com/webdevdotnet/post/Using-StructureMap-with-ASPNET-MVC-MVC-Contrib.aspx"&gt;Structure Map with ASP.Net MVC&lt;/a&gt; which shows a pretty similar usage to how we use StructureMap in Dovetail Mobile and links to all sorts of goodness about DI and inversion of control. All things we are big fans of here at Dovetail. &lt;/p&gt;  &lt;h4&gt;Model&lt;/h4&gt;  &lt;p&gt;Dovetail Mobile data access is mostly done using Dovetail DataMaps to populate viewmodels which are consumed by by the views. I have already done an &lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/04/27/introducing-dovetail-datamap.aspx"&gt;introductory post on DataMaps&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;Views&lt;/h4&gt;  &lt;p&gt;Views are organized under the views directory by controller. &lt;strong&gt;Views\CaseCreate\New.aspx - &lt;/strong&gt;the the location of the view shown when creating a new case. These files contain the the HTML of that to be rendered by that page view. Any changes to view files do not require that you rebuild the application. Each view gets a view model passed to it by the controller.&lt;/p&gt;  &lt;p&gt;If you simply want to style the application’s dive into the &lt;strong&gt;Content&lt;/strong&gt; directory for access to CSS and images. I believe we did a pretty good job of providing CSS id/class hooks for you to style the application.&lt;/p&gt;  &lt;p&gt;If you are familiar with ASP.Net applications you should be comfortable with the concept of &lt;a href="http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx"&gt;Master Pages&lt;/a&gt;. Mobile’s master page is found in the &lt;strong&gt;Views\Shared\Site.Master&lt;/strong&gt;. You’ll notice that there is also an &lt;strong&gt;AgentLite.Master&lt;/strong&gt; file. You can control which master page is used by changing the &lt;em&gt;//pages/masterPageFile&lt;/em&gt; attribute of the web.config file. If you change your master file to use the Agent Lite master page you will notice that it works much better with desktop browsers.&lt;/p&gt;  &lt;h4&gt;Finally&lt;/h4&gt;  &lt;p&gt;If you are looking for more information on the creation and development of Dovetail Mobile Gary and I have been posting about Mobile for some time check out our respective blogs &lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/Dovetail+Mobile+Agent/default.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/mobile+agent/default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11971" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/mobile+agent/default.aspx">mobile agent</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/10/13/what-is-under-the-hood-in-dovetail-mobile.aspx</feedburner:origLink></item><item><title>Free Your Customers from the Labyrinth of Customer Service with Social Media, Part II</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/P_s9deCNKSg/part-ii-free-your-customers-from-the-labyrinth.aspx</link><pubDate>Fri, 02 Oct 2009 17:59:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11966</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>Yesterday, &lt;a href="http://blogs.dovetailsoftware.com/blogs/main/archive/2009/10/01/free-your-customers-from-the-labyrinth-of-customer-service-with-social-media-part-i.aspx"&gt;we pondered&lt;/a&gt; if it's time for companies to invest in a social media strategy. Now thanks to the Internet and sites like YouTube, more and more
customers are making vengeance theirs with just a click. No more lines.
No more phone trees. No more complaining to only 20 people about lousy
customer service. In an instant customers can broadcast their
complaints to 100's or even 1000's of people and there's very little
that companies can throw in their way to keep them from taking a digital
hammer to their corporate reputations. Basically, customers have figured out how avoid the Labyrinth of customer service by using the Internet to go &lt;i&gt;around&lt;/i&gt; you instead of &lt;i&gt;to&lt;/i&gt; you to complain.&lt;br&gt;
&lt;div id="TixyyLink" style="border:medium none;background-color:transparent;text-align:left;text-decoration:none;"&gt;&lt;br&gt;
So if customers can now complain so instantly and so publicly, you would think corporations would be ramping
up their customer service and support to instantly answer every
tweet, blog post and online video, right? Well, the customer centric
companies are working hard to adapt to new consumer channels. But the
customer antagonistic companies, not so much.&lt;br&gt;
&lt;br&gt;
Last year, BusinessWeek published &lt;a href="http://www.businessweek.com/magazine/content/08_09/b4073038437662.htm" title="Consumer Vigilantes" target="_blank" id="p7x1"&gt;Consumer Vigilantes&lt;/a&gt;,
with a subhead that warned, "Memo to Corporate America: Hell now hath
no fury like a customer scorned." Regarding the "venom-spewed tales of
woe" that customers publish online, PeteBlackshaw, EVP of Nielsen Online Strategic Services, told BW
that, ""There's a certain degree of extremism that's popping up, [a
sense of] I'm going to get results, whatever means necessary. Companies
can brush these off as being atypical, mutant consumers, or they can
say there's a very important insight in [their] emotions."&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
Other warnings abound:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.destinationcrm.com/Articles/Columns-Departments/Connect/The-Tweet-Is-Mightier-than-the-Sword-52880.aspx" title="The Tweet Is Mightier than the Sword" target="_blank" id="pyco"&gt;The Tweet Is Mightier than the Sword&lt;/a&gt;: "Social CRM is about joining conversations between customers
and prospects while resisting the urge to control those conversations.
Customers today have more power over who they do business with, and how
that business is conducted. And the Web is totally entrenched in their
buying process. So if you’re not on the Web in ways to capture their
attention, you won’t be able to compete."&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.destinationcrm.com/Articles/CRM-News/Daily-News/Social-CRM-Showdown--55762.aspx" title="Social CRM Showdown" target="_blank" id="y7h-"&gt;Social CRM Showdown&lt;/a&gt;: "Change is occurring outside the enterprise whether businesses decide to
embrace it or not. [Forrester analyst Dr. Natalie Petouhoff] took a stab at summing it up: 'Customer
disdain, social media, and customer service ... have formed a perfect
storm that is super charging change,' she said."&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.destinationcrm.com/Articles/CRM-News/Daily-News/Social-Customer-Service-Remains-%22A-Breed-Apart%22-54622.aspx" title="Social Customer Service Remains &amp;quot;A Breed Apart&amp;quot;" target="_blank" id="qxt-"&gt;Social Customer Service Remains "A Breed Apart"&lt;/a&gt;: "For the most part, very few companies are using formal contact center
agents to handle customer service interactions via these emerging and
new channels,' [Ian Jacobs, senior analyst for customer interaction technologies at Datamonitor,] says. 'Generally, there are social media specialist
groups within companies. Some of them may have contact center
experience or even physically sit in the same room with agents, but
they are a breed apart.'"&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.destinationcrm.com/Articles/Web-Exclusives/Viewpoints/CRM,-Meet-Your-Future--55704.aspx" title="CRM, Meet Your Future" target="_blank" id="lfyc"&gt;CRM, Meet Your Future&lt;/a&gt;: "It is really difficult to discuss CRM today without addressing some
component of social media. Web 2.0 and social media practices have
created the Social Customer. Companies that are not in a position to
embrace their customers through social CRM strategies will quickly lose
touch. Social media is not a separate entity but a blend of CRM
interactional tactics. The same issues that caused CRM failures in the
past will rear their ugly head in social media if the fix is to simply
throw technology at them."&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;&lt;/ul&gt;
So what's your social media strategy?&lt;br&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11966" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/CRM/default.aspx">CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/SCRM/default.aspx">SCRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/social+CRM/default.aspx">social CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/social+media+strategy/default.aspx">social media strategy</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/10/02/part-ii-free-your-customers-from-the-labyrinth.aspx</feedburner:origLink></item><item><title>Dovetail Links 2009-10-01</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/eDWOJqH3plc/dovetail-links-2009-10-01.aspx</link><pubDate>Thu, 01 Oct 2009 20:12:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11965</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>&lt;a href="http://blogs.zdnet.com/service-oriented/?p=3017" title="Seven Ways Companies Go Wrong with SOA" target="_blank" id="qgd6"&gt;Seven Ways Companies Go Wrong with SOA&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"A few years back, I put together a list of where companies appeared to be steering in the wrong direction in terms of SOA implementations. The list bears repeating, because the issues still keep getting in the way of SOA success. Many companies run the risk of jumping into the approach without looking at where they are leaping. Here are the most common pitfalls that could tie an SOA installation into knots."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.1to1media.com/weblog/2007/04/are_you_customer_centric_or_ju.html" title="Are You Customer Centric or Just Pretending?" target="_blank" id="fu3y"&gt;Are You Customer Centric or Just Pretending?&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Your customers can then lead your company in new directions—if you let them. But that will require you to rethink the very nature of your organization. If you really want to listen to customers, give them personalized service, and reward them for loyalty, then you have to reorganize your entire company around customers. To do this requires an enterprisewide commitment to sharing customer data, and the reinvention of how every department in the company should interact with customers."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://customerservicevoodoo.wordpress.com/2009/09/22/customer-service-week-2009/" title="Customer Service Week 2009" target="_blank" id="d-i:"&gt;Customer Service Week 2009&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Fall is my favorite time of year. Football, cooler weather and…Customer Service Week. This year, Customer Service Week is October 5 – 9. For anyone making their first foray into Customer Service Week, this should get you started!"&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://royatkinson.blogspot.com/2009/09/customer-service-week-what-makes-good.html" title="Customer Service Week: What Makes Great Service?" target="_blank" id="cfoc"&gt;Customer Service Week: What Makes Great Service?&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"By great service, I mean the kind of service that makes us change our mind about a purchase or item; it's the kind that not only makes us feel good, but makes us want to tell people about the business, to spread the word, to become an advocate for that business. Anyone in marketing will tell you that this is the most valuable kind of advertising—and they can't get it from an agency."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.allbusiness.com/food-beverage/restaurants-food-service-restaurants-fast/12690731-1.html" title="Plan Now For Customer Service Week" target="_blank" id="sqq4"&gt;Plan Now For Customer Service Week&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Yes, I think that every week should be customer service week. But for those of us who still have a ways to go when it comes to customer centricity, the week of October 5-9 has been designated as Customer Service Week. Of course, there's a &lt;a href="http://www.csweek.com/customer_service_week.php" title="Web site" target="_blank" id="aikw"&gt;Web site&lt;/a&gt;. I remember driving past a fast food outlet last year where the marquee read, 'It's Customer Service Week!' I was amused at that since the sign gave the impression that service would be better that week than others."&lt;/blockquote&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11965" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+centricity/default.aspx">customer centricity</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/National+Customer+Service+Week/default.aspx">National Customer Service Week</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/NCSW/default.aspx">NCSW</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/10/01/dovetail-links-2009-10-01.aspx</feedburner:origLink></item><item><title>Free Your Customers from the Labyrinth of Customer Service with Social Media, Part I</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/cI3rb9eQ7f0/free-your-customers-from-the-labyrinth-of-customer-service-with-social-media-part-i.aspx</link><pubDate>Thu, 01 Oct 2009 17:52:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11964</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>Before the Internet and YouTube existed, angry customers had to be angry enough to keep fighting to have their problem fixed, despite all the obstacles in their way. If traffic on the way to the payment center didn't cool an aggrieved customer, then the waiting in line did. Then there was the hassle of calling customer service and figuring out the Labyrinth of phone trees only to face a Minotaur of a customer service rep at the end. &lt;br&gt;
&lt;br&gt;
All of these obstacles, it seems, were created so only the &lt;i&gt;truly&lt;/i&gt; angry could get satisfaction. If you're weren't devoted and passionate enough to the point of gnashing your teeth and rending your garments, then phone trees worked like an anger management technique -- if forced the customer to count to ten (more like ten thousand) and calm down.&lt;br&gt;
&lt;br&gt;
Still, even with all these obstacles to customer satisfaction, there is a small percentage that refuse to quit fighting and they will work their way through customer service with a vengeance. Some have taken to paying their bills in pennies, like the gentleman at &lt;a href="http://www.paywithpennies.com/" title="PayWithPennies.com" target="_blank" id="f:j4"&gt;PayWithPennies.com&lt;/a&gt; who writes:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left:40px;"&gt;"In today's society, it is 
all too common to hassle the consumer or the taxpayer.   More and more we are asked to 'hold,' 'wait in line,' 'fill out complex or time consuming forms,' or give up confidential information. I'm not against utilities (I like not having to maintain a generator or pump my own water).  I'm 
not against taxes (our taxes here in the U.S. are very competitive with other nations who have 
similar standards of living).  But I am against systematic hassle.  I should not have to take off 
an entire day of work to pay my tax bill or renew my driver's license.  I should not have to wait 
on hold for an hour to get a billing error corrected.  As a customer of government, I think we 
deserve better."&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
And remember &lt;a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/n/a/2007/10/19/national/a095408D19.DTL&amp;amp;tsp=1" title="Mona Shaw" target="_blank" id="dnl4"&gt;Mona Shaw&lt;/a&gt;, the 76 year-old, AARP secretary who took a hammer and tore up a Comcast office? After the incident she told reporters, "I smashed a keyboard, knocked over a monitor ... and I went to hit the
telephone. I figured, 'Hey, my telephone is screwed up, so
is yours.'" She was fined and given a suspended three-month sentence for disorderly conduct. Then she made sure she had the last word and switched her phone and cable service to Verizon and DirecTV. &lt;br&gt;
&lt;br&gt;
But now that customers are figuring out how to avoid the Labyrinth of customer service by using the Internet to go &lt;i&gt;around&lt;/i&gt; you instead of &lt;i&gt;to&lt;/i&gt; you to complain, is it really necessary to suggest that it's time for your company to invest in a social media strategy?&lt;br&gt;
&lt;br&gt;
Come back tomorrow for &lt;a href="http://blogs.dovetailsoftware.com/blogs/main/archive/2009/10/02/part-ii-free-your-customers-from-the-labyrinth.aspx"&gt;part two&lt;/a&gt; of this post to hear what the experts say.&lt;br&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11964" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+service+_2600_amp_3B00_+support/default.aspx">customer service &amp;amp; support</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/SCRM/default.aspx">SCRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/social+CRM/default.aspx">social CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/youtube/default.aspx">youtube</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/10/01/free-your-customers-from-the-labyrinth-of-customer-service-with-social-media-part-i.aspx</feedburner:origLink></item><item><title>What Does it Take to Provide Superior Customer Service</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/6oHOhS9sWsA/what-does-it-take-to-provide-superior-customer-service.aspx</link><pubDate>Wed, 30 Sep 2009 21:21:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11963</guid><dc:creator>slynn</dc:creator><slash:comments>0</slash:comments><description>&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I recently read a blog post on &lt;/FONT&gt;&lt;A href="http://blogs.harvardbusiness.org/tjan/2009/09/why-small-companies-are-better.html"&gt;&lt;SPAN style="COLOR:windowtext;"&gt;&lt;FONT size=3 face=Calibri&gt;Why Small Companies Are Better at Customer Service&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; by Anthony Tjan. In his post Tony points out, &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt 0.5in;" class=MsoNormal&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;“The key difference in these experiences is the common sense and empathy of the small local company. Too much customer service — especially in large companies — has devolved to standard operating procedures and scripted answers delivered with artificial calmness.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;I agree that the key differences Tony points out are critical, but they wouldn’t completely explain why companies provide good or bad customer service. It also takes the right culture within the company to ensure that customers are serviced well. We are all aware of Zappos and their unwavering focus on superior customer service. They aren’t a small company; yet, many companies attempt to emulate their customer service. So what is it about Zappos that makes it possible for a large company to provide fabulous customer service. IT’S THE CULTURE!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So let’s bring the thoughts from Tony’s blog post together with the importance of culture. In the end, it is the culture. That doesn’t mean that all small companies have a great culture and all large companies have a poor culture. The key around the size of the company is that it is easier to formulate a culture and execute it within a small company. Take Dovetail for instance. We approach customer service utilizing a slogan I stole from Nike – Just Do It. Our employees know they are empowered to do what they believe is necessary to satisfy the customer, in most cases with empathy and common sense. We don’t hide behind SLAs, SOPs, or other bureaucratic barriers; we find ways to make our customers successful. That doesn’t mean we always satisfy the customer, but in most cases, we do achieve our goal.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Let’s hope other companies pick up our motto towards customer service, especially as we approach Customer Service Week next week.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Until Next Time,&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Stephen&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11963" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/slynn/archive/tags/customer+service+and+support/default.aspx">customer service and support</category><category domain="http://blogs.dovetailsoftware.com/blogs/slynn/archive/tags/Dovetail+Software/default.aspx">Dovetail Software</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/slynn/archive/2009/09/30/what-does-it-take-to-provide-superior-customer-service.aspx</feedburner:origLink></item><item><title>Dovetail Links 2009-09-29</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/rsKzflJ1XFo/dovetail-links-2009-09-29.aspx</link><pubDate>Tue, 29 Sep 2009 19:38:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11961</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>&lt;a href="http://www.crm-daily.com/story.xhtml?story_id=131002GZ53BY" title="Driving Response Through Customer Care" target="_blank" id="dtvk"&gt;Driving Response Through Customer Care&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"There are only a handful of opportunities to build your brand outside of advertising -- point of sale, point of use, or when a customer has an issue are a few. Each of these instances creates a make-or-break moment. Provide a truly fantastic customer experience and your brand will flourish; provide a subpar experience and watch it flounder. So, how do you assure your customers (and potential customers) will have extraordinary experiences every time?"&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.mycustomer.com/topic/customer-intelligence-supplement-do-you-really-know-your-customers" title="Do You Really Know Your Customers?" target="_blank" id="mkid"&gt;Do You Really Know Your Customers?&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"What is needed is a single view of the truth, not multiple replicated versions. Customer intelligence optimises CRM by providing the creation of a single view of a customer or data consolidation, customer analytics, integration across customer-facing systems. That in turn leads to the transformation of customer information into revenues. An effective customer intelligence strategy will begin with basic reference data – name, rank, location, etc. Then throw into the mix transactional data such as commercial information, customer activity and so on. Then you might add subjective and qualitative factors, such as customer satisfaction levels."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.cio.com/article/503436/Marketing_Automation_Unique_Kid_on_the_CRM_Block" title="Marketing Automation: Unique Kid on the CRM Block" target="_blank" id="d7vz"&gt;Marketing Automation: Unique Kid on the CRM Block&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"CRM systems are supposed to comprise everything that touches the customer relationship. Through native functionality or integration across systems, CRM systems are supposed to achieve the holy grail of the 360-degree view. But all the good books on CRM were written before the current wave of internet marketing techniques (Twitter anyone?), and marketing automation apps continue to evolve rapidly. Marketing automation systems interact deeply with leads, and may even trigger the conversion of leads into contacts. So there's definitely overlap with the front end of the CRM pipeline. Before we talk about the overlap, though, we need to talk about where sales and marketing automation are different."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.dmnews.com/customer-centricity-let-your-customers-lead-you/article/149042/" title="Customer Centricity: Let Your Customers Lead You" target="_blank" id="p6yl"&gt;Customer Centricity: Let Your Customers Lead You&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"High-performance businesses eventually outperform the pack —even through a down economy.&amp;nbsp; One tactic they employ to sustain performance is to remain customer-focused, and marketing has taken a lead role in driving a new focus on customer retention and acquisition.&amp;nbsp; What can we learn from these leaders about the new role of the frontlines of marketing play in addressing operating costs and capturing new revenue waves?"&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.informationweek.com/news/global-cio/interviews/showArticle.jhtml?articleID=220000039" title="Why CEOs Must Tie CIO Pay To Customers And Growth" target="_blank" id="klk9"&gt;Why CEOs Must Tie CIO Pay To Customers And Growth&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"If 40% of your compensation were tied to customer experiences, wouldn't that tend to sharpen your focus on customer outcomes? It's an idea whose time has come."&lt;/blockquote&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11961" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/CRM/default.aspx">CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+centricity/default.aspx">customer centricity</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+experience/default.aspx">customer experience</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/IT+alignment/default.aspx">IT alignment</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/marketing+automation/default.aspx">marketing automation</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/09/29/dovetail-links-2009-09-29.aspx</feedburner:origLink></item><item><title>Participate in a Social CRM Survey, Registration Ending Soon</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/VP-tvyVgBqQ/participate-in-a-social-crm-survey-registration-ending-soon.aspx</link><pubDate>Tue, 29 Sep 2009 15:16:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11960</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>If you work in Customer Experience Management (CEM) and you are a director or above, then Esteban Kolsky, a former Gartner analyst and founder and principal of ThinkJar, would be interested in having you participate in a short survey on &lt;a href="http://www.estebankolsky.com/what-i-do/research-underway-and-planned/" title="Customer Experience in a Social World" target="_blank" id="q-vh"&gt;Customer Experience in a Social World&lt;/a&gt;. If you're willing to answer 18 questions, then you'll get a free copy of the report in December -- and have the opportunity to help create best practices for other CEM pros as they prepare their organizations for social media's newest channels.&lt;br&gt;
&lt;br&gt;
But be advised, you only have 3 days to register, as John Ragsdale was kind enough to &lt;a href="http://jragsdale.wordpress.com/2009/09/18/join-the-survey-panel-customer-experience-in-a-social-world/" title="point out here" target="_blank" id="oyy7"&gt;point out here&lt;/a&gt; that registration closes on October 1. Mr. Ragsdale comments further on the need for such a survey:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left:40px;"&gt;"It is frustrating for me when new terms like 'Social CRM' come about.
Vendors are pushing the term, though few agree on its definition, and
support managers then start asking, 'What is this and should I care?' I
haven’t tracked down much real research on the topic, most of the
content available is hype, scare tactics, and a few desperate attempts
to hopefully monetize the Twitter bandwagon."&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
Forester analyst Dr. Natalie Petouhoff, recently echoed Mr. Ragsdale's complaint at the recent &lt;a href="http://destinationcrm.com/conferences/2009/keynotes.aspx" title="CRM Evolution '09" target="_blank" id="dcns"&gt;CRM Evolution '09&lt;/a&gt; conference, where she was &lt;a href="http://www.destinationcrm.com/Articles/CRM-News/Daily-News/Social-CRM-Showdown--55762.aspx" title="quoted by destinationCRM" target="_blank" id="mtfp"&gt;quoted by destinationCRM&lt;/a&gt;, as saying, "It's a really confusing, growing landscape." But even in this economic climate Dr. Petouhoff still is confident enough to insist, "If you have one initiative in customer service, it should be social media."&lt;br&gt;
&lt;br&gt;
At the conference, Dr. Petouhoff stated that despite the fact that her research shows that social media customer initiatives achieve nearly 100 percent ROI in less than 12 months, the issue is that marketers feel that, "We already had too many channels to begin with - and we weren't very good at them — and now we are adding another channel."&lt;br&gt;
&lt;br&gt;
So if you want to be one of the pathfinders in the new social media frontier, then register for the Customer Experience in a Social World by &lt;a href="mailto:esteban@estebankolsky.com" title="sending Esteban Kolsky an email" target="_blank" id="w6vv"&gt;sending Esteban Kolsky an email&lt;/a&gt; -- and do it before October 1.&lt;br&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11960" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/CEM/default.aspx">CEM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+experience+management/default.aspx">customer experience management</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/SCRM/default.aspx">SCRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/social+CRM/default.aspx">social CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/survey/default.aspx">survey</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/09/29/participate-in-a-social-crm-survey-registration-ending-soon.aspx</feedburner:origLink></item><item><title>Dovetail Links 2009-09-25</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/Kv9Mud4tnZQ/dovetail-links-2009-09-25.aspx</link><pubDate>Fri, 25 Sep 2009 16:27:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11952</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>&lt;a href="http://www.industryweek.com/articles/why_customer_service_needs_to_be_more_than_mere_lip_service_19983.aspx?SectionID=4" title="Why Customer Service Needs To Be More Than Mere Lip Service" id="r6qc"&gt;Why Customer Service Needs To Be More Than Mere Lip Service&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Customer alignment, Customer experience, Customer centricity. Companies describe their focus on the customer in a variety of ways. Analysts talk about customer service as a part of an overall product experience, and research shows that the total experience a customer has with a company is more important than any single interaction. In fact, studies reveal that customers who have experienced top-notch service after a purchase are more satisfied and, therefore, more loyal than customers who never had a product incident that led to a service experience."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.destinationcrmblog.com/2009/09/15/crm-contracts-negotiations-and-the-hidden-gotchas/" target="_blank" title="CRM Contracts, Negotiations, and the Hidden Gotchas&amp;quot;" id="b_9l"&gt;CRM Contracts, Negotiations, and the Hidden "Gotchas"&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"'Sometimes the best discounts are often the worst deals I see,' [Gartner analyst &lt;a href="http://www.gartner.com/AnalystBiography?authorId=19129"&gt;Jane Disbrow&lt;/a&gt;] admitted to attendees. 'They end up being products that [customers] don’t use. They end up being shelfware.' So as a cautionary note, be sure to know what are looking for when shopping around. It’s like the idea: 'Never go grocery shopping on an empty stomach.' Offers, promotions, and discounts are appealing, but you might end up with something you don’t really need."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.estebankolsky.com/2009/09/22/what-social-crm-means-for-the-it-department/" title="What Social CRM means for the IT Department" target="_blank" id="wq_k"&gt;What Social CRM means for the IT Department&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"The Social CRM community has thus far primarily (and rightly) focused on the needs of the customer first and customer-facing business functions second.&amp;nbsp; But the IT department—particularly in large organizations—continues to be the function primarily responsible for designing, implementing, and managing the business systems required to make things like Social CRM a reality.&amp;nbsp; Like it or not (and I know that many practitioners in our community do not) appropriately addressing the needs of the IT department is critical to this process."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.cio.com/article/503221/You_Say_IT_Forrester_Says_BT_What_s_the_Difference_" title="You Say IT, Forrester Says BT: What's the Difference?" target="_blank" id="jc0-"&gt;You Say IT, Forrester Says BT: What's the Difference?&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"What's in a name? A lot, says Forrester Research CEO George Colony,
whose quest to transform Information Technology to Business Technology
is taking longer than expected. But would a new name really help bridge
the gap between the server guys and the suits?"&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://jragsdale.wordpress.com/2009/09/18/join-the-survey-panel-customer-experience-in-a-social-world/" title="Join the Survey Panel: Customer Experience in a Social World" target="_blank" id="z-f-"&gt;Join the Survey Panel: Customer Experience in a Social World&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"It is frustrating for me when new terms like 'Social CRM' come about. Vendors are pushing the term, though few agree on its definition, and support managers then start asking, 'What is this and should I care?' I haven’t tracked down much real research on the topic, most of the content available is hype, scare tactics, and a few desperate attempts to hopefully monetize the Twitter bandwagon."&lt;br&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11952" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/BT/default.aspx">BT</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/business+technology/default.aspx">business technology</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+service+_2600_amp_3B00_+support/default.aspx">customer service &amp;amp; support</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/IT+alignment/default.aspx">IT alignment</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/SCRM/default.aspx">SCRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/social+CRM/default.aspx">social CRM</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/09/25/dovetail-links-2009-09-25.aspx</feedburner:origLink></item><item><title>Clarify Architect position</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/oszvXqdjjdw/clarify-architect-position.aspx</link><pubDate>Fri, 25 Sep 2009 16:04:41 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11951</guid><dc:creator>gsherman</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;For any of you Clarify peeps out there looking for a gig, there’s a &lt;a href="http://seeker.dice.com/jobsearch/servlet/JobSearch?op=302&amp;amp;dockey=xml/8/2/82df19e7e76c9d01b3372f1eaee4f552@endecaindex&amp;amp;source=18"&gt;Clarify Architect position&lt;/a&gt; available in Cincinnati Ohio.&lt;/p&gt;  &lt;p&gt;Requirements:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Very Strong experience with Clarify/Amdocs product platform (Customer/Call management systems)&lt;/li&gt;    &lt;li&gt;Strong experience with installations, configurations and migrations of Clarify product platform&lt;/li&gt;    &lt;li&gt;Strong experience with TIBCO.&lt;/li&gt;    &lt;li&gt;Should be able to perform installations and configurations, as well as setting up interfaces etc&lt;/li&gt;    &lt;li&gt;Experience with Tuxedo and Weblogic are required.&lt;/li&gt;    &lt;li&gt;Should be able to perform installations and configurations, as well as any troubleshooting&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Note: This isn’t a position at Dovetail, and I don’t have any vested interest in filling this job. I’m simply sharing an opportunity with my Clarify compadres. &lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11951" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/clarify+amdocs/default.aspx">clarify amdocs</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/09/25/clarify-architect-position.aspx</feedburner:origLink></item><item><title>Running Multiple Instances of a Windows Service Using TopShelf</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/HmrhzTcUK2Y/running-multiple-instances-of-a-windows-service-using-topshelf.aspx</link><pubDate>Thu, 24 Sep 2009 20:43:38 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11948</guid><dc:creator>kmiller</dc:creator><slash:comments>5</slash:comments><description>&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/topshelf3small_507D71C4.png"&gt;&lt;img style="border-right-width:0px;margin:0px 0px 0px 15px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="top-shelf-3-small" border="0" alt="top-shelf-3-small" align="right" src="http://blogs.dovetailsoftware.com/blogs/kmiller/topshelf3small_thumb_0F6EF260.png" width="150" height="200" /&gt;&lt;/a&gt;   &lt;p&gt;Here is another one where I post about something &lt;a href="http://www.lostechies.com/blogs/joshuaflanagan/"&gt;Josh&lt;/a&gt; and team did that I borrowed and am using to great effect. When a console app or a windows service needed we like to use &lt;a href="http://code.google.com/p/topshelf/"&gt;TopShelf&lt;/a&gt; to get the job done. In this post I’ll show how to get two instances of a Windows service running on one machine using TopShelf.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Updated:&lt;/strong&gt; As Mike points out in the comments below as of &lt;a href="http://code.google.com/p/topshelf/source/detail?r=46"&gt;revision 46&lt;/a&gt; Dru added a command line parameter to handle this scenario. Great! Much better than our hacky solution below (written before this revision). Please skip this post and just add a &lt;strong&gt;–instance &amp;lt;instance name&amp;gt;&lt;/strong&gt; argument at the command line to install additional windows services. Here is an example:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;YourApplication.exe /install –instance NumeroDos&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now back to the original post which should be ignored so stop reading now &amp;lt;grin&amp;gt;. Sigh, this is what I get for posting about something cool we did back in March.&lt;/p&gt;  &lt;h3&gt;Topshelf Basics&lt;/h3&gt;  &lt;p&gt;For a better introduction to TopShelf checkout &lt;a href="http://codebetter.com/blogs/dru.sellers/default.aspx"&gt;Dru Sellers’s&lt;/a&gt; introductory post on &lt;a href="http://codebetter.com/blogs/dru.sellers/archive/2009/01/11/topshelf.aspx"&gt;TopShelf&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The code below is very close to the code we use to tell Topshelf how to setup one of our Windows services. &lt;/p&gt;  &lt;pre class="brush: csharp; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;static void Main(string[] args)
{
	var cfg = RunnerConfigurator.New(x =&amp;gt;
	{
		x.SetDisplayName(&amp;quot;Dovetail Seeker Service&amp;quot;);
		x.SetServiceName(&amp;quot;Seeker&amp;quot;);
		x.SetDescription(&amp;quot;Indexing service for Dovetail Seeker.&amp;quot;);

		x.ConfigureService&amp;lt;SeekerService&amp;gt;(&amp;quot;&amp;quot;, c =&amp;gt;
		{
			c.WhenStarted(s =&amp;gt; s.Start());
			c.WhenStopped(s =&amp;gt; s.Stop());
		});
	});

	Runner.Host(cfg, args);
}&lt;/pre&gt;

&lt;p&gt;All the application work is done by the SeekerService class. At runtime Topshelf makes it very easy to run an application as a console app or install it as a windows service.&lt;/p&gt;

&lt;pre&gt;Seeker.exe            #Runs as a console
Seeker.exe /install   #installs the service
Seeker.exe /uninstall #uninstalls the service&lt;/pre&gt;

&lt;h3&gt;Why You Are Here&lt;/h3&gt;

&lt;p&gt;Unfortunately, Windows by default only allows one windows service with a given name. So the second time you try to install the application you’ll get an error. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;2009-09-24 15:27:32,486 ERROR Topshelf.Internal.Actions.InstallServiceAction - The Seeker service has already been installed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The solution is to change the name at runtime via configuration. Our solution was to add an application configuration setting defining the instance name of the service which then gets used at runtime. Here is the code above with a few changes.&lt;/p&gt;

&lt;pre class="brush: csharp; auto-links: false; collapse: false; first-line: 1; gutter: false; highlight: [3,7,8]; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;static void Main(string[] args)
{
	var instanceName = ConfigurationManager.AppSettings[&amp;quot;WindowsServiceInstanceName&amp;quot;];

	var cfg = RunnerConfigurator.New(x =&amp;gt;
	{
		x.SetDisplayName(&amp;quot;Dovetail Seeker Service &amp;quot; + instanceName);
		x.SetServiceName(&amp;quot;Seeker&amp;quot; + instanceName);
		x.SetDescription(&amp;quot;Indexing service for Dovetail Seeker.&amp;quot;);

		x.ConfigureService&amp;lt;SeekerService&amp;gt;(&amp;quot;&amp;quot;, c =&amp;gt;
		{
			c.WhenStarted(s =&amp;gt; s.Start());
			c.WhenStopped(s =&amp;gt; s.Stop());
		});
	});

	Runner.Host(cfg, args);
}&lt;/pre&gt;

&lt;p&gt;Here is a look at the app.config file with an alternate instance name defined:&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;appSettings file=&amp;quot;applicationSettings.config&amp;quot;&amp;gt;
    &amp;lt;add key=&amp;quot;WindowsServiceInstanceName&amp;quot; value=&amp;quot;NumeroDos&amp;quot;/&amp;gt;
  &amp;lt;/appSettings&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;

&lt;p&gt;Now installing the application does not give us an error. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&amp;gt;Seeker.exe /install&lt;/p&gt;

  &lt;p&gt;Beginning the Install phase of the installation. 
    &lt;br /&gt;2009-09-24 15:32:34,176 INFO&amp;#160; Topshelf.Internal.Hosts.HostServiceInstaller - Installing Service SeekerNumeroDos 

    &lt;br /&gt;Installing service DovetailSeeker... 

    &lt;br /&gt;Service SeekerNumeroDos has been successfully installed. 

    &lt;br /&gt;Creating EventLog source SeekerNumeroDos in log Application... &lt;/p&gt;

  &lt;p&gt;The Install phase completed successfully, and the Commit phase is beginning. &lt;/p&gt;

  &lt;p&gt;The Commit phase completed successfully. &lt;/p&gt;

  &lt;p&gt;The transacted install has completed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Wee! We got multiple copies of our Windows service working on a single machine. When writing Windows services I recommend you check out Topshelf. Besides making it easy to work with Windows services. Topshelf works great in concert with IoC containers and allows you to easily get services on worker threads going about their business. But those details are for another post. Want to see more? Let me know.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11948" width="1" height="1"&gt;</description><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/09/24/running-multiple-instances-of-a-windows-service-using-topshelf.aspx</feedburner:origLink></item><item><title>Plenty of Customer Outrage Online, But Where's the Love?</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/ZK7zUSKWrag/plenty-of-customer-outrage-online-but-where-s-the-love.aspx</link><pubDate>Thu, 24 Sep 2009 15:29:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11946</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>There are plenty of online venues for customers to complain. There are sites like &lt;a href="http://www.complaints.com/" title="Complaints.com" target="_blank" id="hmka"&gt;Complaints.com&lt;/a&gt;, &lt;a href="http://www.ripoffreport.com/" title="Ripoff Report" target="_blank" id="k7t4"&gt;Ripoff Report&lt;/a&gt; and &lt;a href="http://TheSqueakyWheel.com" title="TheSqueakyWheel" target="_blank" id="lohu"&gt;TheSqueakyWheel&lt;/a&gt; that let consumers vent, rank and boycott all sorts of companies. Then there are company specific sites like &lt;a href="http://www.allstateinsurancesucks.com/" title="AllStateInsuranceSucks" target="_blank" id="q1xy"&gt;AllStateInsuranceSucks&lt;/a&gt;, &lt;a href="http://timewarnersux.com/" title="TimeWarnerSuxs" target="_blank" id="he.9"&gt;TimeWarnerSuxs&lt;/a&gt; and &lt;a href="http://www.sprint-really-sucks.com/Home.aspx" title="Sprint Really Sucks" target="_blank" id="ei_3"&gt;Sprint Really Sucks&lt;/a&gt;. But why are their so few sites devoted to customer kudos?&lt;br&gt;
&lt;br&gt;
Sure, there's &lt;a href="http://www.yelp.com/" title="Yelp" target="_blank" id="la2c"&gt;Yelp&lt;/a&gt; and &lt;a href="http://foursquare.com/" title="foursquare" target="_blank" id="u-.l"&gt;foursquare&lt;/a&gt; for consumers to post recommendations and reviews. But neither of these sites are expressly dedicated to raves about customer service. If there's a &lt;a href="http://www.ihatedell.net/" title="I Hate Dell" target="_blank" id="uw1y"&gt;I Hate Dell&lt;/a&gt;, why isn't there a I Love Dell? To be fair, there are individual blog posts and forum threads that do extol the virtues of companies like Dell. &lt;br&gt;
&lt;br&gt;
But where's the love? While corporations live in fear of lone bloggers with revenge in their hearts and too much time on their hands, has there never been a company with such great customer service and
support that it inspires a community of netizens who gather in praise?&lt;br&gt;
&lt;br&gt;
Well, there is at least a new contest sponsored by &lt;a href="http://telephonedoctor.com/" title="Telephone Doctor," target="_blank" id="gq2v"&gt;Telephone Doctor,&lt;/a&gt; a customer service training company out of St. Louis, and they are searching for the best customer service stories from the previous year. The winner will receive $500 and prominent placement in a new book being published by the company. The contest runs till January 31, 2010, and winners will be notified by the first of April.&lt;br&gt;
&lt;br&gt;
In &lt;a href="http://finance.yahoo.com/news/Telephone-Doctor-Customer-bw-2369065001.html?x=0&amp;amp;.v=1" title="this press release" target="_blank" id="he5b"&gt;this press release&lt;/a&gt;, Nancy Friedman, president of Telephone Doctor, writes about her inspiration for the contest:&lt;br&gt;
&lt;br&gt;&lt;blockquote&gt;
"On a recent trip to Las Vegas while waiting to check into one of the mega hotels on the strip, I saw something that surprised me.&lt;br&gt;&lt;br&gt;
"I couldn’t help but notice how rude some of the check in staff were to the guests. With all that’s going on in this down economy, I wondered what it would take for them to smile, say something nice and be more polite. Others in line noticed it too. We started talking and we all agreed we wouldn’t want to come back to this property.&lt;br&gt;&lt;br&gt;
"YES it’s tougher now. YES times are difficult. YES jobs are being lost. YES people are spending less. But the good news is they are still spending. And customers want to spend their money where they are welcomed and appreciated. It got us thinking, in this down economy, what companies are rising to the top to keep your business? Who’s doing more than the bare minimum?"&lt;br&gt;&lt;/blockquote&gt;


&lt;br&gt;
If you've experienced a shining example of customer service and want a crack at that $500, simply &lt;a href="mailto:PRESS@telephonedoctor.com" title="send an email" target="_blank" id="v5mc"&gt;send Telephone Doctor an email&lt;/a&gt; with your story, plus your name, address and phone number.&lt;br&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11946" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/complaint+sites/default.aspx">complaint sites</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+service/default.aspx">customer service</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+service+_2600_amp_3B00_+support/default.aspx">customer service &amp;amp; support</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/09/24/plenty-of-customer-outrage-online-but-where-s-the-love.aspx</feedburner:origLink></item><item><title>Using Log4Net in PowerShell</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/To8GpDRS7Kg/using-log4net-in-powershell.aspx</link><pubDate>Wed, 23 Sep 2009 22:59:10 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11942</guid><dc:creator>gsherman</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I was writing some PowerShell this week, and wanted to do some logging.&lt;/p&gt;  &lt;p&gt;I’ve blogged in the past about &lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2007/05/14/configuring-logging-in-the-fcsdk-without-a-config-file.aspx"&gt;configuring log4net with the fcSDK within Powershell&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;However, this method relied on the log4net handling within our SDK. What if I wanted to log before I got to the SDK initialization? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/"&gt;Kevin&lt;/a&gt; shared some of his &lt;a href="http://logging.apache.org/log4net/"&gt;log4net&lt;/a&gt; fu, and I put it into Powershell.&lt;/p&gt;  &lt;h2&gt;Configure Logging&lt;/h2&gt;  &lt;p&gt;Here’s what I came up with:&lt;/p&gt;  &lt;p&gt;function configure-logging()   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [system.reflection.assembly]::LoadWithPartialName(&amp;quot;log4net&amp;quot;) &amp;gt; $null;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $LogManager = [log4net.LogManager]&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $global:logger = $LogManager::GetLogger(&amp;quot;PowerShell&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if ( (test-path $appSettings[&amp;quot;logConfigFilePath&amp;quot;]) -eq $false)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $message = &amp;quot;WARNING: logging config file not found: &amp;quot; +&amp;#160; $appSettings[&amp;quot;logConfigFilePath&amp;quot;]    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; write-host    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; write-host $message -foregroundcolor yellow    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; write-host    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $configFile = new-object System.IO.FileInfo( $appSettings[&amp;quot;logConfigFilePath&amp;quot;] );&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $xmlConfigurator = [log4net.Config.XmlConfigurator]::ConfigureAndWatch($configFile);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;Notice that the logging config file is coming from $appSettings. &lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/09/11/more-fun-with-powershell.aspx"&gt;I blogged about this earlier&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Logging Config File&lt;/h2&gt;  &lt;p&gt;a pretty standard log4net config file setup with a rolling file appender:&lt;/p&gt;  &lt;p&gt;&amp;lt;log4net&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;appender name=&amp;quot;PowerShellRollingFileAppender&amp;quot; type=&amp;quot;log4net.Appender.RollingFileAppender&amp;quot; &amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;File&amp;quot; value=&amp;quot;C:\logs\powershell.log&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;AppendToFile&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;RollingStyle&amp;quot; value=&amp;quot;Size&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;MaxSizeRollBackups&amp;quot; value=&amp;quot;100&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;MaximumFileSize&amp;quot; value=&amp;quot;1024KB&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;StaticLogFileName&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;lockingModel type=&amp;quot;log4net.Appender.FileAppender+MinimalLock&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param name=&amp;quot;ConversionPattern&amp;quot; value=&amp;quot;%d [%-5p] [%c] %n&amp;#160;&amp;#160;&amp;#160; %m%n%n&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/layout&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/appender&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;root&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;level value=&amp;quot;info&amp;quot; /&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/root&amp;gt;    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;logger name=&amp;quot;PowerShell&amp;quot; additivity=&amp;quot;false&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;level value=&amp;quot;info&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;appender-ref ref=&amp;quot;PowerShellRollingFileAppender&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/logger&amp;gt;    &lt;br /&gt;&amp;lt;/log4net&amp;gt;&lt;/p&gt;  &lt;h2&gt;Logging functions&lt;/h2&gt;  &lt;p&gt;I then created some wrapper functions for messages &amp;amp; warnings that write to the output and to the log4net logger:&lt;/p&gt;  &lt;p&gt;function log-info ([string] $message)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; write-host $message    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $logger.Info($message);    &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;function log-warn ([string] $message)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; write-host &amp;quot;WARNING: $message&amp;quot; -foregroundcolor yellow    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $logger.Warn($message);    &lt;br /&gt;}&lt;/p&gt;  &lt;h2&gt;Startup function&lt;/h2&gt;  &lt;p&gt;This function loads up the configuration (which sets up $appSettings), and configures logging:&lt;/p&gt;  &lt;p&gt;function startup()   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .\LoadConfig dovetail.config    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; configure-logging;    &lt;br /&gt;}&lt;/p&gt;  &lt;h2&gt;Go-Go gadget logger&lt;/h2&gt;  &lt;p&gt;After calling startup, I can log away, and it will go to the console, and to my log file:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/powershell_207E9339.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="powershell" border="0" alt="powershell" src="http://blogs.dovetailsoftware.com/blogs/gsherman/powershell_thumb_4F80CF10.jpg" width="522" height="219" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11942" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/PowerShell/default.aspx">PowerShell</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/09/23/using-log4net-in-powershell.aspx</feedburner:origLink></item><item><title>Extension Methods I Use A Lot</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/DQA7_lj9M9A/extension-methods-i-use-a-lot.aspx</link><pubDate>Wed, 23 Sep 2009 18:05:37 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11940</guid><dc:creator>kmiller</dc:creator><slash:comments>7</slash:comments><description>&lt;p&gt;C# extensions have been around for some time and it was a fad for a while to post your favorites. I am following way behind the extension party bus with this post of my favorite extensions. Most of these are poached from &lt;a href="http://www.lostechies.com/blogs/chad_myers/"&gt;Chad&lt;/a&gt; and &lt;a href="http://codebetter.com/blogs/jeremy.miller/default.aspx"&gt;Jeremy&lt;/a&gt; and &lt;a href="http://www.lostechies.com/blogs/joshuaflanagan/"&gt;Josh&lt;/a&gt; with &lt;strike&gt;a few&lt;/strike&gt; sadly only one of my own mixed in.&lt;/p&gt;  &lt;p&gt;Below is the Basic Extensions class that is common to a lot of our Dovetail projects. I am not a big believer in class libraries for simple little things like these as extensions that are useful on one project will be useless on another. &lt;/p&gt;  &lt;pre class="brush: csharp; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 2; toolbar: true;"&gt;using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web.Script.Serialization;

namespace Dovetail.Commons
{
    public static class BasicExtensions
    {
        /// &amp;lt;summary&amp;gt;
        /// Write string to the console. 
        /// &amp;lt;/summary&amp;gt;
        public static void WriteToConsole(this string stringValue)
        {
            Console.WriteLine(stringValue);
        }

        /// &amp;lt;summary&amp;gt;
        /// Fills the format string with the provided arguments
        /// &amp;lt;/summary&amp;gt;
        public static string ToFormat(this string format, params object[] args)
        {
            return String.Format(format, args);
        }

        public static string ToJson(this object objectToSerialize)
        {
            return new JavaScriptSerializer().Serialize(objectToSerialize);
        }

        public static T DeserializeJSON&amp;lt;T&amp;gt;(this string json) where T : class
        {
            return new JavaScriptSerializer().Deserialize&amp;lt;T&amp;gt;(json);
        }

        /// &amp;lt;summary&amp;gt;
        /// Returns true if the value being tested is not null and not an empty string
        /// &amp;lt;/summary&amp;gt;
        public static bool IsNotEmpty(this string stringValue)
        {
            return !String.IsNullOrEmpty(stringValue);
        }

        /// &amp;lt;summary&amp;gt;
        /// Returns true if the value being tested is null or an empty string
        /// &amp;lt;/summary&amp;gt;
        public static bool IsEmpty(this string stringValue)
        {
            return String.IsNullOrEmpty(stringValue);
        }

        /// &amp;lt;summary&amp;gt;
        /// Returns true if the value being tested is null or contains no items
        /// &amp;lt;/summary&amp;gt;
        public static bool IsEmpty&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; enumerable)
        {
            return (enumerable == null || enumerable.Count() &amp;lt; 1);
        }

        /// &amp;lt;summary&amp;gt;
        /// Performs an action with a counter for each item in a sequence and provides
        /// &amp;lt;/summary&amp;gt;
        public static IEnumerable&amp;lt;T&amp;gt; Each&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; values, Action&amp;lt;T, int&amp;gt; eachAction)
        {
            var index = 0;
            foreach (var item in values)
            {
                eachAction(item, index++);
            }

            return values;
        }

        /// &amp;lt;summary&amp;gt;
        /// Performs an action for each item in a sequence. Good for one-line foreach statements.
        /// &amp;lt;/summary&amp;gt;
        public static IEnumerable&amp;lt;T&amp;gt; Each&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; values, Action&amp;lt;T&amp;gt; eachAction)
        {
            foreach (var item in values)
            {
                eachAction(item);
            }

            return values;
        }

        /// &amp;lt;summary&amp;gt;
        /// Performs an action for each item in a sequence. Good for one-line foreach statements.
        /// &amp;lt;/summary&amp;gt;
        public static IEnumerable Each(this IEnumerable values, Action&amp;lt;object&amp;gt; eachAction)
        {
            foreach (var item in values)
            {
                eachAction(item);
            }

            return values;
        }
    }
}&lt;/pre&gt;

&lt;p&gt;Enjoy and as always your mileage may vary. Don’t over do it with the extension methods. They are handy but can get in the way if overused. For example you might want think twice before adding an extension to System.Object that will get seen by every type in the system.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11940" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/tags/dovetail/default.aspx">dovetail</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/09/23/extension-methods-i-use-a-lot.aspx</feedburner:origLink></item><item><title>Saving Searches in Dovetail applications</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/zdH6CN9Caz4/saving-searches-in-dovetail-applications.aspx</link><pubDate>Mon, 21 Sep 2009 21:03:13 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11938</guid><dc:creator>gsherman</dc:creator><slash:comments>0</slash:comments><description>&lt;h2&gt;Saving Searches in Dovetail Agent&lt;/h2&gt;  &lt;p&gt;One of the things under development for the next version of &lt;a href="http://www.dovetailsoftware.com/resources/docs.aspx?product=DovetailAgent"&gt;Dovetail Agent&lt;/a&gt; is the ability to save your favorite searches.&lt;/p&gt;  &lt;p&gt;Here’s a screenshot:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/search_4E6893B2.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="search" border="0" alt="search" src="http://blogs.dovetailsoftware.com/blogs/gsherman/search_thumb_6783EDEA.jpg" width="959" height="566" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So you can now save your searches, and easily execute them again at anytime.&lt;/p&gt;  &lt;p&gt;You can also name a search. By default, the name of the search will be the search terms. But you can rename it to whatever you want.   &lt;br /&gt;For example, as opposed to a search being named: “squeaking washer condition:open casetype:problem”    &lt;br /&gt;You may choose to rename it as “open cases for squeaky washer”&lt;/p&gt;  &lt;p&gt;Look for this functionality in the next release of &lt;a href="http://www.dovetailsoftware.com/resources/docs.aspx?product=DovetailAgent"&gt;Dovetail Agent&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Saving Searches in Dovetail Mobile Agent and Agent Lite&lt;/h2&gt;  &lt;p&gt;Currently, we don’t have Saved Searches in &lt;a href="http://www.dovetailsoftware.com/resources/docs.aspx?product=DovetailMobileAgent"&gt;Dovetail Mobile Agent&lt;/a&gt; or Agent Lite. This is on the enhancement list for the future.&lt;/p&gt;  &lt;p&gt;But, you can easily save a search today by simply using a browser bookmark/favorite.&lt;/p&gt;  &lt;p&gt;Here’s a screenshot of a search within Dovetail Agent Lite:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/search_agent_lite_45B81559.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="search_agent_lite" border="0" alt="search_agent_lite" src="http://blogs.dovetailsoftware.com/blogs/gsherman/search_agent_lite_thumb_3DC072F7.jpg" width="959" height="692" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Notice the URL:&lt;/p&gt;  &lt;p&gt;http://localhost/AgentLite/Search/query?query=squeaking+washer+condition:open+casetype:problem&amp;amp;searchDomain=case &lt;/p&gt;  &lt;p&gt;Notice that it has all of the search parameters within it.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The path to the search page: http://localhost/AgentLite/Search/query?query=&lt;/li&gt;    &lt;li&gt;The text keywords to search for: squeaking + washer&lt;/li&gt;    &lt;li&gt;Structured attributes: condition:open + casetype:problem&lt;/li&gt;    &lt;li&gt;And a search domain: &amp;amp;searchDomain=case &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So you can simply bookmark this using your browser, and easily execute this query again at anytime.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/bookmarks_154190E3.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="bookmarks" border="0" alt="bookmarks" src="http://blogs.dovetailsoftware.com/blogs/gsherman/bookmarks_thumb_028C972C.jpg" width="949" height="314" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The functionality works exactly the same within &lt;a href="http://www.dovetailsoftware.com/resources/docs.aspx?product=DovetailMobileAgent"&gt;Dovetail Mobile Agent&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11938" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/Dovetail+Agent/default.aspx">Dovetail Agent</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/Dovetail+Agent+Lite/default.aspx">Dovetail Agent Lite</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/Dovetail+Mobile+Agent/default.aspx">Dovetail Mobile Agent</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/search/default.aspx">search</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/seeker/default.aspx">seeker</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/09/21/saving-searches-in-dovetail-applications.aspx</feedburner:origLink></item><item><title>National Customer Service Week: What has Changed Since Last Year?</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/wl_sii9SFXI/national-customer-service-week-what-has-changed-since-last-year.aspx</link><pubDate>Mon, 21 Sep 2009 18:26:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11937</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>It's that time a year again, folks. &lt;a href="http://www.nationalcustomerserviceweek.com/" title="National Customer Service Week" target="_blank" id="w01e"&gt;National Customer Service Week&lt;/a&gt; (NCSW) is only 13 days away and it's time to take stock of what we've each accomplished since last year.&lt;br&gt;
&lt;br&gt;
Even in this difficult climate, companies that commit themselves to the values and practices recommended by the &lt;a href="http://www.instituteofcustomerservice.com/" title="Institute of Customer Service" target="_blank" id="nxua"&gt;Institute of Customer Service&lt;/a&gt;, the organization primarily behind NCSW, report rising profits. Research from the Institute, shows that, "companies with a reputation for service
excellence and committed front-line staff have a 24% higher net profit
margin than same-sector rivals who do not enjoy similar standing, and
can achieve 71% more profit per employee. (For more information, see &lt;a href="http://www.callcentrehelper.com/national-customer-service-week-sees-sales-surge-5172.htm" title="National Customer Service Week Sees Sales Surge" target="_blank" id="kwjo"&gt;National Customer Service Week Sees Sales Surge&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Need more proof? The Consumerist &lt;a href="http://consumerist.com/347828/retain-5-more-customers-reap-35+95-more-profit" title="called attention" target="_blank" id="mtjz"&gt;calls attention&lt;/a&gt; to a Harvard Business Review story with some pretty convincing math:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left:40px;"&gt;"Did you know that if you keep 5% more of your customers, you will make
35-95% more profit? Those were the findings of a Harvard researcher
when he investigated the financial impact of keeping customers around.
The chart [&lt;a href="http://consumerist.com/347828/retain-5-more-customers-reap-35+95-more-profit" title="here" target="_blank" id="fr.l"&gt;here&lt;/a&gt;] demonstrates how a 5% increase in retention rates
increased profit across a variety of industries. The equation is
simple: make us stick around (usually by making us happier) and we'll
make you more money. Cut out support, services, make it difficult to
talk to you, etc, and while you might save in the short, you'll lose in
the long-term."&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
You would think that everyone would have learned the importance of Customer Service and Support (CS&amp;amp;S) on the very first day of business school, right? It may have been taught on day one and reinforced every day all the way to graduation, but it's largely been forgotten. And it's for this reason that we coined the term "&lt;a href="http://blogs.dovetailsoftware.com/blogs/slynn/archive/2007/06/20/the-forgotten-space.aspx" title="The Forgotten Space" target="_blank" id="cwan"&gt;The Forgotten Space&lt;/a&gt;" years ago, to remind CEO's, CFO's, CMO's, CTO's, share holders&amp;nbsp; and call center employees that Customer Service and Support is a basic business fundamental.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
&lt;a href="http://searchcrm.techtarget.com/news/article/0,289142,sid11_gci1363827,00.html#" title="SearchCRM" target="_blank" id="z42b"&gt;SearchCRM&lt;/a&gt;, with its article on a &lt;a href="http://www.strativity.com/" title="Strativity Group" target="_blank" id="brb0"&gt;Strativity Group&lt;/a&gt; consumer survey, concurs:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left:40px;"&gt;"'In a tough economy, what is the right approach?' [Lior Arussy, CEO of Strativity] asked. 'The
knee-jerk reaction is to cut costs across the board. We said you have
to identify your differentiating touch points. Those are the ones you
need to increase instead of decrease. The smart companies are actually
taking the position [that they] will invest in the right things the
right way and invest in differentiating factors." The survey also showed that loyal customers are almost three times as
likely to continue doing business with companies for another 10 years
as dissatisfied customers, and dissatisfied customers are 10 times more
likely to attrite in the next 12 months."&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
Stephen Lynn, Dovetail's CEO observed this "knee-jerk reaction is to cut costs across the board" when he was at the Service &amp;amp; Support Professional (SSPA) conference last May. In his post, &lt;a href="http://blogs.dovetailsoftware.com/blogs/slynn/archive/2009/05/15/is-customer-service-and-support-still-the-forgotten-space.aspx" title="Is Customer Service and Support Still the “Forgotten Space”?" target="_blank" id="l7.j"&gt;Is Customer Service and Support Still the “Forgotten Space”?&lt;/a&gt;, Stephen noted that 80% of SSPA members were being told to cut their 2009 budgets and worse:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left:40px;"&gt;"As I sat and listened to the keynote addresses at the conference, there was almost an air of desperation in terms of getting senior management to listen to the value of improving customer service. They showed customer survey studies that showed a link between the level of customer service and financial performance - Those companies that showed the highest level of customer service had better financial performance than those with lower levels of customer service. But here’s the problem. Corporate Senior Management is focused on next quarter’s performance, not longer term. They are trying to save their own job. That results in greater pressure to reduce short-term costs to bolster the bottom line. So they aren’t listening!"&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
So what has been accomplished since NCSW last year?&lt;br&gt;
&lt;br&gt;
Not much and not enough. &lt;br&gt;
&lt;br&gt;
Meanwhile, we won't quite talking about The Forgotten Space till Customer Service and Support is a fundamental part of business.&lt;br&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11937" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+service+_2600_amp_3B00_+support/default.aspx">customer service &amp;amp; support</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/increase+revenue/default.aspx">increase revenue</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/National+Customer+Service+Week/default.aspx">National Customer Service Week</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/recession/default.aspx">recession</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/09/21/national-customer-service-week-what-has-changed-since-last-year.aspx</feedburner:origLink></item><item><title>Dovetail Links 2009-09-21</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/-WrOzHmmu7w/dovetail-links-2009-09-21.aspx</link><pubDate>Mon, 21 Sep 2009 16:45:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11936</guid><dc:creator>Dovetail Software</dc:creator><slash:comments>0</slash:comments><description>&lt;a href="http://www.destinationcrm.com/Articles/Web-Exclusives/Viewpoints/Boost-Customer-Satisfaction,-Now-55713.aspx" title="Boost Customer Satisfaction, Now" target="_blank" id="rx_n"&gt;Boost Customer Satisfaction, Now&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Yes, the economy is in the tank and companies of all sizes are reducing or, in some cases, eliminating "nice to have" activities and expenditures. But customer satisfaction programs and solutions should not be lumped into this category. Now is not the time to dial back on ensuring positive customer experiences. There are several easy steps that all vendors should take in order to cost-effectively enhance customer satisfaction and grow revenues -- especially in a down economy."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://news.cincinnati.com/article/20090920/BIZ01/909200337/1001/BIZ" title="In Bruising Times, Companies Use Secret Weapon: Customer Service" target="_blank" id="ctxi"&gt;In Bruising Times, Companies Use Secret Weapon: Customer Service&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Customer service: Two words that can spark outrage or induce euphoria. Nearly everyone has a baffling story about a rude store cashier or elusive call center operator. Homeowners have waited hours for the cable guy, and customers have listened to 10 different voices to resolve a banking issue."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.destinationcrm.com/Articles/CRM-News/Daily-News/6-Steps-to-Influencing-Customers-and-Building-Trust---56207.aspx" title="6 Steps to Influencing Customers and Building Trust" target="_blank" id="cy83"&gt;6 Steps to Influencing Customers and Building Trust&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"Ever wonder what's on Warren Buffett's reading list? Psychology books, at least according to a presentation during the final day of Gartner's CRM Summit here this week. Dr. Robert B. Cialdini, an author and a professor of marketing and psychology, explained to attendees that the billionaire financier known as the Oracle of Omaha grasps the reality of the marketplace: that, in order to build trust -- and, subsequently, gain influence -- you must first understand human behavior."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://www.crmbuyer.com/story/CRM-in-2009-Personal-Social-Mobile-Adaptable-68110.html" title="CRM in 2009: Personal, Social, Mobile, Adaptable" target="_blank" id="u.ey"&gt;CRM in 2009: Personal, Social, Mobile, Adaptable&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"The drive to personalize mass marketing has spawned a big business, and it's getting bigger. Companies spent US$9.15 billion on CRM software and services in 2008, a 12.5 percent increase from 2007, Gartner reported in July. An even more favorable estimate of the global CRM market came from Forrester Research, which pegged it at $11.7 billion in 2008. While CRM's rate of growth may cool during 2009, experts foresee the market expanding by more than 5 percent annually for the next few years."&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
&lt;a href="http://searchcrm.techtarget.com/news/article/0,289142,sid11_gci1368267,00.html#" title="Gartner Outlines Five Technology Trends changing CRM Architectures" target="_blank" id="ngq3"&gt;Gartner Outlines Five Technology Trends changing CRM Architectures&lt;/a&gt;&lt;br&gt;&lt;blockquote&gt;
"The market for CRM software was one of the few technology areas to see an increase in spending this year, slight though it was, according to Gartner Inc. Companies have transitioned from buying big, cross-departmental suites to niche products, and that has helped keep the market growing, said Ed Thompson, research vice president of the Stamford, Conn.-based research firm at the company's annual CRM Summit. While the CRM market grew just an expected 3.3% in 2009, it did better than most other technology spending areas. 'Certainly we're shocked CRM is still growing,' Thompson said."&lt;br&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11936" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/CRM/default.aspx">CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+acquisition/default.aspx">customer acquisition</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customer+service+_2600_amp_3B00_+support/default.aspx">customer service &amp;amp; support</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/customermer+experience/default.aspx">customermer experience</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/growth/default.aspx">growth</category><category domain="http://blogs.dovetailsoftware.com/blogs/main/archive/tags/trends/default.aspx">trends</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/main/archive/2009/09/21/dovetail-links-2009-09-21.aspx</feedburner:origLink></item><item><title>Migrating a case from Clarify into a Zendesk ticket</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/JPzty-4fotw/migrating-a-case-from-clarify-into-a-zendesk-ticket.aspx</link><pubDate>Mon, 21 Sep 2009 15:18:06 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11934</guid><dc:creator>gsherman</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I recently received a request asking how to migrate some data (specifically, cases) from Clarify into &lt;a href="http://www.zendesk.com"&gt;Zendesk&lt;/a&gt;. Seems the company is in the process of turning off Clarify and rolling out Zendesk.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/clarrify2zendesk_0C4F79E8.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clarrify to zendesk" border="0" alt="clarrify to zendesk" src="http://blogs.dovetailsoftware.com/blogs/gsherman/clarrify2zendesk_thumb_107951AD.gif" width="686" height="256" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;It’s all about the APIs&lt;/h2&gt;  &lt;p&gt;We provide a &lt;a href="http://www.dovetailsoftware.com/resources/docs.aspx?product=DovetailSDK"&gt;full set of APIs for Clarify within our Dovetail SDK&lt;/a&gt;, and &lt;a href="http://www.zendesk.com/api"&gt;Zendesk also provides a set of APIs&lt;/a&gt;. So we just need to put them together.&lt;/p&gt;  &lt;h2&gt;PowerShell&lt;/h2&gt;  &lt;p&gt;I’ve been using &lt;a href="http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx"&gt;PowerShell&lt;/a&gt; more and more lately, so I decided to use that as my environment. And because Powershell gives me full access to the .NET framework, I can use classes such as System.Net.WebClient, which makes it easy for me to call the &lt;a href="http://www.zendesk.com/api"&gt;Zendesk REST APIs&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Login to Clarify&lt;/h2&gt;  &lt;p&gt;In &lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/09/11/more-fun-with-powershell.aspx"&gt;a previous post&lt;/a&gt;, I showed how to use some common functions in PowerShell for logging into a Clarify database.&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;. .\DovetailCommonFunctions.ps1      &lt;br /&gt;$ClarifyApplication = create-clarify-application;       &lt;br /&gt;$ClarifySession = create-clarify-session $ClarifyApplication;&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;Get the case data from Clarify&lt;/h2&gt;  &lt;p&gt;Now, we need to get the details of a case.&lt;/p&gt;  &lt;p&gt;A quick little function to get a case given its ID number:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;function get-case-by-id([string] $id)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $dataSet = new-object FChoice.Foundation.Clarify.ClarifyDataSet($ClarifySession)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $caseGeneric = $dataSet.CreateGeneric(&amp;quot;case&amp;quot;)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $caseGeneric.AppendFilter(&amp;quot;id_number&amp;quot;, &amp;quot;Equals&amp;quot;, $id)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $caseGeneric.Query();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $caseGeneric.Rows[0];       &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Then we can call this function that we just created:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;$case = get-case-by-id &amp;quot;10&amp;quot;;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;and get some case data:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;$subject=$case[&amp;quot;title&amp;quot;];      &lt;br /&gt;$description = $case[&amp;quot;case_history&amp;quot;];&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;That’s all the Clarify stuff. Now onto the Zendesk side of things.&lt;/p&gt;  &lt;h2&gt;It’s a ticket in Zendesk&lt;/h2&gt;  &lt;p&gt;In Clarify, they’re called tickets. In Zendesk, they’re called tickets.&lt;/p&gt;  &lt;p&gt;First, we’ll create the XML needed by the &lt;a href="http://www.zendesk.com/api/tickets"&gt;create ticket API&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;$createTicketXML = &amp;quot;&amp;lt;ticket&amp;gt;&amp;quot;;      &lt;br /&gt;$createTicketXML+= &amp;quot;&amp;lt;subject&amp;gt;&amp;lt;![CDATA[&amp;quot; + $subject + &amp;quot;]]&amp;gt;&amp;lt;/subject&amp;gt;&amp;quot;;       &lt;br /&gt;$createTicketXML+= &amp;quot;&amp;lt;description&amp;gt;&amp;lt;![CDATA[&amp;quot; + $description + &amp;quot;]]&amp;gt;&amp;lt;/description&amp;gt;&amp;quot;;&amp;#160; &lt;br /&gt;$createTicketXML+= &amp;quot;&amp;lt;/ticket&amp;gt;&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;Zendesk authentication and URL&lt;/h2&gt;  &lt;p&gt;&lt;font color="#800000"&gt;$zendeskLoginName = &amp;quot;myLoginName&amp;quot;;      &lt;br /&gt;$zendeskPassword = &amp;quot;myPassword&amp;quot;;       &lt;br /&gt;$zendeskURL = “http://myZendeskAccount.zendesk.com/”       &lt;br /&gt;$ticketsURL = $zendeskURL + &amp;quot;tickets.xml&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;A simple web request&lt;/h2&gt;  &lt;p&gt;As I mentioned earlier, since I’m in Powershell, I can easily use the System.Net.WebClient object. Setup the login credentials, set the content type to be application/xml, and then we can post the XML to create a ticket.&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;$webClient = new-object &amp;quot;System.Net.WebClient&amp;quot;      &lt;br /&gt;$webClient.Credentials = new-object System.Net.NetworkCredential($zendeskLoginName,$zendeskPassword )       &lt;br /&gt;$webClient.Headers.Add(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/xml&amp;quot;);       &lt;br /&gt;$webClient.UploadString($ticketsURL,$createTicketXML);&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;Status Check and output&lt;/h2&gt;  &lt;p&gt;&lt;font color="#800000"&gt;if ($webClient.ResponseHeaders[&amp;quot;Status&amp;quot;] -eq 201)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; write-host &amp;quot;Successfully created a new ticket in Zendesk at:&amp;quot; $webClient.ResponseHeaders[&amp;quot;Location&amp;quot;]       &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This will output something like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/powershell_08EDE240.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="powershell" border="0" alt="powershell" src="http://blogs.dovetailsoftware.com/blogs/gsherman/powershell_thumb_6866A28D.jpg" width="987" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Successfully created a new ticket in Zendesk at: http://myZendeskAccount.zendesk.com/tickets/34.xml&lt;/p&gt;  &lt;h2&gt;Next steps&lt;/h2&gt;  &lt;p&gt;Next would be to probably get a list of cases from Clarify, loop through them, and for each one, create it in Zendesk.&amp;#160; I’ll leave that as an exercise for the reader. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h2&gt;Did I mention it’s all about the APIs?&lt;/h2&gt;  &lt;p&gt;Rock on.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11934" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/clarify+amdocs/default.aspx">clarify amdocs</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/CRM/default.aspx">CRM</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/fcSDK/default.aspx">fcSDK</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/integration/default.aspx">integration</category><category domain="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/tags/PowerShell/default.aspx">PowerShell</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2009/09/21/migrating-a-case-from-clarify-into-a-zendesk-ticket.aspx</feedburner:origLink></item><item><title>Dovetail is Hiring a Junior-to-Mid-level .NET Developer</title><link>http://feedproxy.google.com/~r/dovetailsoftware/Bftb/~3/V9VuP7fD9qg/dovetail-is-hiring-a-junior-to-mid-level-net-developer.aspx</link><pubDate>Fri, 18 Sep 2009 16:39:15 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11932</guid><dc:creator>cmyers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Come work for one of the most progressive development shops in the US. This is an opportunity to work with some of the leaders in the .NET/C# space including Jeremy Miller and Joshua Flanagan – both senior developers, designers, architects, authors, and open source project leaders -- with tons of experience. We use cutting edge project practices and our testers and information developers are integrated with the development team.&lt;/p&gt;  &lt;p&gt;We’re building a new software product line using pioneering practices and technologies, such as:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Test-driven development &lt;/li&gt;    &lt;li&gt;Continuous integration &lt;/li&gt;    &lt;li&gt;Behavior-driven design &lt;/li&gt;    &lt;li&gt;Domain-driven design &lt;/li&gt;    &lt;li&gt;HTML, CSS, Javascript (jQuery) &lt;/li&gt;    &lt;li&gt;ASP .NET MVC &lt;/li&gt;    &lt;li&gt;C# 3.0, .NET 3.5, Visual Studio 2008 &lt;/li&gt;    &lt;li&gt;SQL 2008 &lt;/li&gt;    &lt;li&gt;NHibernate 2.x &lt;/li&gt;    &lt;li&gt;LINQ2NHibernate &lt;/li&gt;    &lt;li&gt;StructureMap &lt;/li&gt;    &lt;li&gt;Selenium Core and Selenium RC &lt;/li&gt;    &lt;li&gt;StoryTeller for automated acceptance testing &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Who we’re looking for&lt;/strong&gt; || Dovetail Software is staffing a team for an innovative software project. We’re looking for junior- to mid-level software developers with demonstrable C# (preferably .NET 2.0 or later) and HTML/CSS experience (not necessarily ASP.NET, just web development in general). Any experience with test-driven development or automated unit testing in general is a huge plus.&amp;#160; Also, participation in the community (attendance of events, avid blog reader + commenter, or maybe you even have a blog yourself) will put you firmly in the running for this position. We’re looking for people that believe learning and continuous improvement are primary responsibilities of a software developer. We’re hiring motivated people for a terrific opportunity with a team of recognized .NET and agile community leaders. If you’re not looking to rocket your knowledge and experience fast, please do not apply!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Our development methodology&lt;/strong&gt; || We are an Agile shop (Scrum/XP, Kanban for tracking). We work without iterations in a continuous stream of development with frequent releases -- not long crushing release cycles. We have a collaborative relationship with our customers. We write tests before we write functional code to clarify our design intentions. We keep the build clean. We work in an environment that maximizes communication to minimize the volume of spec documents. We build software that can effectively respond to change. We use open source tools where appropriate, and Microsoft tools where they make sense. We have executive support and visibility all the way up to the owner of the company.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;About Dovetail Software&lt;/strong&gt; || Serving companies since 1995, Dovetail Software develops CRM products for global 1000 enterprises. Our product, Dovetail CRM, is a comprehensive customer service and support, logistics management, customer self service, and knowledge management suite. Dovetail is a small company with big customers and great benefits for its employees. Our outstanding compensation package includes company-assisted health, dental, and life insurance, matching 401k, and more.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;About Texas&lt;/strong&gt; || Texas has outpaced every other state in the Union during the recent economic downturn. Texas added more jobs in 2008 than all the other 49 states &lt;em&gt;combined&lt;/em&gt;. Texas’ economy continues to grow and lead the country in technology jobs.&amp;#160; Seven of the top 25 fastest-growing cities in the U.S. are in Texas (according to the U.S. Census Bureau). The second-fastest growing city in the U.S. is Round Rock, a city in the same metro/commuter area of Austin.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;About Austin&lt;/strong&gt; || Placing second in the Large Cities Creativity Ranking, Austin is recognized as a city with a thriving music scene, ethnic and cultural diversity, endless outdoor recreations, and a great nightlife. It’s a nationally recognized center for technology innovation—home to 3,200 tech companies with 98,000 employees.&amp;#160; In 2008, Forbes Magazine rated Austin the #1 fastest-growing large metro area in the US. &lt;a href="http://www.lostechies.com/blogs/chad_myers/archive/2008/04/21/move-to-austin.aspx"&gt;Austin is a great place to live and work&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;Email us and tell us why you’d make a great addition to our team: &lt;a href="mailto:tech-jobs@dovetailsoftware.com"&gt;tech-jobs@dovetailsoftware.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11932" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/cmyers/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.dovetailsoftware.com/blogs/cmyers/archive/tags/Hiring/default.aspx">Hiring</category><feedburner:origLink>http://blogs.dovetailsoftware.com/blogs/cmyers/archive/2009/09/18/dovetail-is-hiring-a-junior-to-mid-level-net-developer.aspx</feedburner:origLink></item></channel></rss>
