<?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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Blog</title><link>http://www.delphicsage.com/home/blog.aspx</link><language>en-us</language><pubDate>Thu, 24 May 2012 12:00:00 EST</pubDate><docs>http://blogs.law.harvard.edu/tech/rss</docs><generator>Delphic Sage CMS</generator><managingEditor>info@delphicsage.com</managingEditor><webMaster>info@delphicsage.com</webMaster><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/delphicsage/blog" /><feedburner:info uri="delphicsage/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>40.026626</geo:lat><geo:long>-75.223118</geo:long><feedburner:emailServiceId>delphicsage/blog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Good SEO: Content Farm not Included</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/0iYFx1m4Qnk/blog.aspx</link><description>&lt;p&gt;The worst content farms sprinkle in references to the latest buzzwords (cloud computing), websites (Pinterest), and products (iPad) as a way of luring in unwary Googlers. Since they make their money by selling ads, their only concern is getting eyeballs to land on the page. The more traffic they lure in, the higher their ad revenues. They have little concern about any of the words that appear on the page, other than to make sure as many as possible of them will appear in consumer searches. By starting with SEO and ignoring content, content farms are websites where, as Gertrude Stein said, &amp;ldquo;There is no there there.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The content farm model is completely backwards. In fact, your job is to figure out what information your potential customers need and provide it. Effective digital marketing is all about posting meaty content that engages people &amp;mdash; and then making sure people can find it.&lt;/p&gt;
&lt;p&gt;SEO&amp;rsquo;s role in responsible marketing is not only legitimate, it&amp;rsquo;s crucial. That role is helping potential clients and customers find their way to you. If you&amp;rsquo;re selling something more significant than just hits on a web page, worry about content first and use SEO to support it.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=0iYFx1m4Qnk:Smqp2sjWDrk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=0iYFx1m4Qnk:Smqp2sjWDrk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=0iYFx1m4Qnk:Smqp2sjWDrk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=0iYFx1m4Qnk:Smqp2sjWDrk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=0iYFx1m4Qnk:Smqp2sjWDrk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=0iYFx1m4Qnk:Smqp2sjWDrk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=0iYFx1m4Qnk:Smqp2sjWDrk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/0iYFx1m4Qnk" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 24 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">458</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1258&amp;title=Good_SEO_Content_Farm_not_Included</feedburner:origLink></item><item><title>Catching Your Customer with Content Marketing</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/98N483z3u3M/blog.aspx</link><description>&lt;p&gt;And, as in a detective story, sometimes what&amp;rsquo;s important isn&amp;rsquo;t what happens, but what doesn&amp;rsquo;t happen. In &amp;ldquo;The Silver Blaze,&amp;rdquo; Sherlock Holmes had a famous conversation with a Scotland Yard detective:&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;Gregory (detective): &amp;ldquo;Is there any other point to which you would wish to draw my attention?&amp;rdquo;&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;Holmes: &amp;ldquo;To the curious incident of the dog in the night-time.&amp;rdquo;&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;Gregory: &amp;ldquo;The dog did nothing in the night-time.&amp;rdquo;&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;Holmes: &amp;ldquo;That was the curious incident.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Are the dogs not barking for you? Or are they barking but not biting? If you&amp;rsquo;re attracting visitors to your website but not doing so well at converting them to customers, you need to look at not only the content that is there, but also the content that is missing.&lt;/p&gt;
&lt;p&gt;Modern consumers often start the path to a purchase by doing an online search for information, so make sure your website has information that helps people in the preliminary stages of that search. Some of them will have a clear idea of what problem they need to solve, but only a few will know what the solution might be. They need to know not only why your product or service is the best, but why they need that product or service to solve their problem.&lt;/p&gt;
&lt;p&gt;Most potential customers are coming to your website for either technical or product information, or for reviews from previous customers. Technical information is usually the first content posted to a website, but companies fail to provide testimonials from current customers as well. You can do this either with an overview (statistical information like ratings, or brief excerpts from customer comments), or with detailed case studies of individual clients, as appropriate.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s no mystery here &amp;mdash; in fact, it&amp;rsquo;s elementary: Provide the content that will help convert visitors to customers, no matter where they are on that path.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=98N483z3u3M:TW8zSXpxGFs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=98N483z3u3M:TW8zSXpxGFs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=98N483z3u3M:TW8zSXpxGFs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=98N483z3u3M:TW8zSXpxGFs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=98N483z3u3M:TW8zSXpxGFs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=98N483z3u3M:TW8zSXpxGFs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=98N483z3u3M:TW8zSXpxGFs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/98N483z3u3M" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 22 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">457</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1254&amp;title=Catching_Your_Customer_with_Content_Marketing</feedburner:origLink></item><item><title>Sellers Dorsey Gets a New Look</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/FPI3U3_LzPM/blog.aspx</link><description>&lt;p&gt;The gears continue to turn here at Delphic Sage, and this week we're proud to announce a fantastic launch for a hometown client. Sellers Dorsey, a national healthcare consulting firm based in Center City Philadelphia, sought a refresh of their website to reflect their recently updated branding and promise. Through a sleek and modern design, cool color palette, and compelling imagery, Delphic Sage helped to create a site that expresses the firm's creativity, intelligence, and innovation in the demanding healthcare industry.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sellersdorsey.com" target="_blank"&gt;&lt;img src="/Uploads/Gallery/blog/2012/sd.jpg" border="0" alt="Sellers Dorsey Homepage" title="Sellers Dorsey" width="550" height="515" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=FPI3U3_LzPM:yzbeAMIUi6s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=FPI3U3_LzPM:yzbeAMIUi6s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=FPI3U3_LzPM:yzbeAMIUi6s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=FPI3U3_LzPM:yzbeAMIUi6s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=FPI3U3_LzPM:yzbeAMIUi6s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=FPI3U3_LzPM:yzbeAMIUi6s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=FPI3U3_LzPM:yzbeAMIUi6s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/FPI3U3_LzPM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 21 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">456</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1256&amp;title=Sellers_Dorsey_Gets_a_New_Look</feedburner:origLink></item><item><title>How to Choose the Best Place to Host Your Blog</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/GePE-ZFKlC8/blog.aspx</link><description>&lt;p&gt;The usual practice is to host a blog on your own website. Do this if you want to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Drive traffic to your site&lt;/em&gt;. Obviously, there&amp;rsquo;s a correlation between traffic and sales. Use the blog to attract visitors, then make sure it&amp;rsquo;s easy to navigate around your site to find product information, customer reviews, and other material that will turn visitors into customers.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Make sure there&amp;rsquo;s a constant flow of new material on your site&lt;/em&gt;. One of the most &lt;a href="http://www.seomoz.org/blog/google-fresh-factor" target="_blank"&gt;important factors in page rankings is fresh content&lt;/a&gt;. A blog is one of the easiest ways to make sure there&amp;rsquo;s new content on a frequent basis. Ideally, one or more people will be blogging a few times a week, if not daily.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An on-site blog isn&amp;rsquo;t always the answer though. The primary reason to host your blog off-site is to protect the effectiveness of key words that are already creating traffic. Some blogs include content that is only partially connected &amp;mdash; or not connected at all &amp;mdash; to your main mission.&lt;/p&gt;
&lt;p&gt;For example, blogging about your staff&amp;rsquo;s community service activities or the company softball team, or posting photos and brief bios of new employees, can help personalize your organization&amp;rsquo;s public face. At the same time, however, it can also throw up a bunch of key words that might dilute the search effectiveness of terms more relevant to your products or services. You don&amp;rsquo;t necessarily need to acquire a new domain to move your blog offsite: you can use WordPress or a similar site and crosslink between the two domains.&lt;/p&gt;
&lt;p&gt;A blog is a great idea &amp;mdash; but make it part of your overall branding strategy and place it accordingly.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GePE-ZFKlC8:xIg-aMlOkfo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GePE-ZFKlC8:xIg-aMlOkfo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GePE-ZFKlC8:xIg-aMlOkfo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=GePE-ZFKlC8:xIg-aMlOkfo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GePE-ZFKlC8:xIg-aMlOkfo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GePE-ZFKlC8:xIg-aMlOkfo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=GePE-ZFKlC8:xIg-aMlOkfo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/GePE-ZFKlC8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 16 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">453</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1240&amp;title=How_to_Choose_the_Best_Place_to_Host_Your_Blog</feedburner:origLink></item><item><title>Who's Your Audience? Digital Natives v Digital Immigrants</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/7On2kvtzmlI/blog.aspx</link><description>&lt;p&gt;&amp;ldquo;Digital Natives&amp;rdquo; &amp;mdash; those who have grown up with mobile technology as part of their everyday lives &amp;mdash; are more attached to their favorite devices: almost two-thirds of them (66 percent) carry their devices with them from room to room. Fewer than half (41 percent) of  &amp;ldquo;Digital Immigrants,&amp;rdquo; who adopted mobile technology as adults, are likely to do so.&lt;/p&gt;
&lt;p&gt;What consumers do with their favorite devices also differs by age. Digital Natives are multi-taskers, with their attention split among various media simultaneously. These may include several different electronic platforms (smart phone, tablet, laptop), traditional media like television, and even non-electronic media like magazines. If on a single device, they&amp;rsquo;ll have multiple channels (such as tabs in a web browser) open at once.&lt;/p&gt;
&lt;p&gt;This means that their emotional engagement is very limited: as soon as they&amp;rsquo;re bored, Digital Natives switch their attention to something new. They switch channels and platforms up to 27 times per hour, almost every other minute.&lt;/p&gt;
&lt;p&gt;Digital Natives are used to picking up different pieces of a story from a variety of sources and piecing them together. They don&amp;rsquo;t necessarily expect a linear presentation of facts. &amp;ldquo;This study strongly suggests a transformation...that is rewiring the brains of a generation of Americans like never before,&amp;rdquo; said Dr. Carl Marci of Innerscope Research.&lt;/p&gt;
&lt;p&gt;Not only do Digital Natives switch channels more frequently, they frequent different channels than Digital Immigrants. While about 80 percent of online adults &amp;mdash; 146.5 million people &amp;mdash; use social media networks, those networks differ by age. Except for Facebook, almost all social media sites are far more popular with people aged 18 to 34 than they are with people 35 and up, according to a study by Netpop Research.&lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;table style="color: #000;" border="0" cellspacing="0" width="70"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Channel&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wikipedia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twitter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yelp&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000; padding-left: 20px;" border="0" cellspacing="0" width="70"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Total&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;90%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;56%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;43%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000000;" border="0" cellspacing="0" width="90"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Women 18-34&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;92%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;66%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;48%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000000;" border="0" cellspacing="0" width="70"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Men 18-34&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;92%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;83%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;65%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;34%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000000;" border="0" cellspacing="0" width="70"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Women 35+&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;92%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;37%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000000;" border="0" cellspacing="0" width="70"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Men 35+&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;85%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;52%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Understanding these generational differences will enable you to better reach your target audience, both by choosing the appropriate networks, and by presenting material in ways that will snag the fast-moving attention of Digital Natives.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7On2kvtzmlI:BQ8apuDyS90:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7On2kvtzmlI:BQ8apuDyS90:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7On2kvtzmlI:BQ8apuDyS90:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=7On2kvtzmlI:BQ8apuDyS90:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7On2kvtzmlI:BQ8apuDyS90:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7On2kvtzmlI:BQ8apuDyS90:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=7On2kvtzmlI:BQ8apuDyS90:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/7On2kvtzmlI" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 15 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">451</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1238&amp;title=Whos_Your_Audience_Digital_Natives_v_Digital_Immigrants</feedburner:origLink></item><item><title>Content Marketing Secrets to Success</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/DUHJASe8dKw/blog.aspx</link><description>&lt;p&gt;There are at least three organizational levels involved in an effective content campaign: creators, managers, and directors. Each of these groups has a different focus, and each needs different data in order to do their jobs successfully.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Creators&lt;/strong&gt; write the words, choose the links, design the infographics, and find the illustrations. They need granular metrics to figure out which content is the most effective at the level of the visitor. Data that will be helpful to creators includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Traffic&lt;/em&gt;: page views, time spent, bounce rate, unique views&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Source&lt;/em&gt;: inbound search keywords, referring sites, visitor demographics&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sharing&lt;/em&gt;: email forwards, Facebook shares, Twitter retweets&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Managers&lt;/strong&gt; supervise creators, so they need to be aware of reader metrics, but their primary concern is converting visitors to customers. Data that managers need includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Lead volume generated&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Lead quality&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Cost-per-lead&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Conversion rate&lt;/em&gt; (downloads, email opt-ins, etc.)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Market share&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Qualitative feedback&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Directors&lt;/strong&gt; need big-picture metrics. If their staff is doing their job properly, they&amp;rsquo;ll have very little interest in the lower level metrics, and instead will focus on data like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Revenue&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Costs&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;ROI&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Customer lifetime value&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which type of data is most important at any level of course depends on the overall goal of the campaign &amp;mdash; increasing sales, decreasing costs, improving customer satisfaction. Regardless of what that goal is, each member of the team will need a different type of data to help the organization get there.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DUHJASe8dKw:rMAKG_3Lf9s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DUHJASe8dKw:rMAKG_3Lf9s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DUHJASe8dKw:rMAKG_3Lf9s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=DUHJASe8dKw:rMAKG_3Lf9s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DUHJASe8dKw:rMAKG_3Lf9s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DUHJASe8dKw:rMAKG_3Lf9s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=DUHJASe8dKw:rMAKG_3Lf9s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/DUHJASe8dKw" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 10 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">450</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1236&amp;title=Content_Marketing_Secrets_to_Success</feedburner:origLink></item><item><title>Get Down to Business: Adding LinkedIn to your Marketing Mix</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/n28UNVVzIfM/blog.aspx</link><description>&lt;p&gt;&lt;em&gt;Grow a following.&lt;/em&gt; Add a &amp;ldquo;follow company button&amp;rdquo; on your homepage, your blog, and your contact page. Followers see your updates in their news feeds, making this an effective way to engage people and develop leads.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Let your followers tell their followers how great you are. &lt;/em&gt;Once you&amp;rsquo;ve grown a following, you want to make it easy for them to tell their networks about you. LinkedIn has two different buttons: &amp;ldquo;share&amp;rdquo; and &amp;ldquo;recommend.&amp;rdquo;&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;Put a &amp;ldquo;share&amp;rdquo; button &lt;span style="font-style: normal;"&gt;on white papers, blog entries, technical information, news releases, and any other business and professional material on your website. Your LinkedIn followers are interested in the business implications of the material, so place the LinkedIn &amp;ldquo;share&amp;rdquo; button more strategically than the Facebook &amp;ldquo;like&amp;rdquo; button. &lt;strong&gt;Don&amp;rsquo;t&lt;/strong&gt; use it for a product page; &lt;strong&gt;do&lt;/strong&gt; use it for an article about the impact of that new product on your industry.&lt;/span&gt;&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;Put a &amp;ldquo;recommend&amp;rdquo; button &lt;span style="font-style: normal;"&gt;on product or service pages on your website, &lt;strong&gt;if&lt;/strong&gt; there&amp;rsquo;s a clear industry or business-to-business connection. You can also gather recommendations on LinkedIn itself: use the products tab on your company profile page to post product descriptions that will link back to your website.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Make it easier for followers to engage on your site.&lt;/em&gt; &lt;a href="http://mashable.com/2012/04/03/linkedin-website-plugins/" target="_blank"&gt;Savvy online users want to be able to sign in on your site with existing social media accounts.&lt;/a&gt; LinkedIn log-ins make it easier for people can comment on your material &amp;mdash; and also gives you useful information about who&amp;rsquo;s visiting your site and what they&amp;rsquo;re doing there.&lt;/p&gt;
&lt;p&gt;The big difference between LinkedIn and other social media sites is its focus on job-seeking and networking. Use it on your website&amp;rsquo;s careers page to find qualified new employees.&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;The Company Insider plug-in &lt;span style="font-style: normal;"&gt;enables candidates to find people from their network who already work for you. The plug-in can also profile new hires and report promotions and changes in status of current employees,  giving all potential applicants a sense of how well your company is doing.&lt;/span&gt;&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;The Apply button &lt;span style="font-style: normal;"&gt;enables candidates to apply for jobs directly from their LinkedIn profiles. The advantage to you is that you can see not only resumes, but recommendations and networks as well.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Companies that are actively growing should definitely be using LinkedIn, but any company trying to develop a more effective online presence should consider it as well.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=n28UNVVzIfM:G9qmRE4fs8Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=n28UNVVzIfM:G9qmRE4fs8Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=n28UNVVzIfM:G9qmRE4fs8Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=n28UNVVzIfM:G9qmRE4fs8Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=n28UNVVzIfM:G9qmRE4fs8Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=n28UNVVzIfM:G9qmRE4fs8Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=n28UNVVzIfM:G9qmRE4fs8Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/n28UNVVzIfM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 09 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">449</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1234&amp;title=Get_Down_to_Business_Adding_LinkedIn_to_your_Marketing_Mix</feedburner:origLink></item><item><title>Designing for a Community</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/7TeuytSqkxs/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7TeuytSqkxs:_qeAtucVSIs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7TeuytSqkxs:_qeAtucVSIs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7TeuytSqkxs:_qeAtucVSIs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=7TeuytSqkxs:_qeAtucVSIs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7TeuytSqkxs:_qeAtucVSIs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7TeuytSqkxs:_qeAtucVSIs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=7TeuytSqkxs:_qeAtucVSIs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/7TeuytSqkxs" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 08 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">448</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1232&amp;title=Designing_for_a_Community</feedburner:origLink></item><item><title>Why Do Customers Want to Hear From Your Brand?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Uy4OE7pkiWM/blog.aspx</link><description>&lt;p&gt;Specifically, 58 percent of email subscribers and 41 percent of Facebook &amp;ldquo;likers&amp;rdquo; sign up to receive discounts and special offers. In a closely related answer, the number two reason is to take part in a specific promotion.&lt;/p&gt;
&lt;p&gt;Here are the full results:&lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;table style="color: #000;" border="0" cellspacing="0" width="260"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;reason&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Receive discounts and special offers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Take part in a specific promotion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I&amp;rsquo;m a customer/supporter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gain access to exclusive content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Desire to stay informed on an ongoing basis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Support a business/nonprofit I like&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000; padding-left: 20px;" border="0" cellspacing="0" width="140"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;email subscribers&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;58%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;39%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;37%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;25%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;table style="color: #000000;" border="0" cellspacing="0" width="120"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;Facebook &amp;ldquo;likers&amp;rdquo;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;41%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;27%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;25%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You&amp;rsquo;ll notice that despite the different percentages, the rankings of both lists are very similar. Clearly, customers are looking for a reason &amp;mdash; or reasons &amp;mdash; to sign up to hear from you. Just being a company they like isn&amp;rsquo;t enough for them to &amp;ldquo;like&amp;rdquo; you.&lt;/p&gt;
&lt;p&gt;Once you do have followers, make sure you don&amp;rsquo;t bombard them with too much information. When asked why they unsubscribe from an email list or &amp;ldquo;unlike&amp;rdquo; a company, the top reason was &amp;ldquo;too many notifications/emails&amp;rdquo; &amp;mdash; 69 percent for email, and 42 percent for Facebook. &amp;ldquo;The information was no longer relevant,&amp;rdquo; meaning the purchase had been made or the event had passed, tied for number one for Facebook (42 percent), and was the number two reason for email (56 percent).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uy4OE7pkiWM:SV6TtbytEpM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uy4OE7pkiWM:SV6TtbytEpM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uy4OE7pkiWM:SV6TtbytEpM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Uy4OE7pkiWM:SV6TtbytEpM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uy4OE7pkiWM:SV6TtbytEpM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uy4OE7pkiWM:SV6TtbytEpM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Uy4OE7pkiWM:SV6TtbytEpM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Uy4OE7pkiWM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 03 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">447</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1230&amp;title=Why_Do_Customers_Want_to_Hear_From_Your_Brand</feedburner:origLink></item><item><title>Outbound vs Inbound Marketing: It's Time to Make the Switch</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ftGbBCduw48/blog.aspx</link><description>&lt;p&gt;Traditional marketing can be described as outbound marketing: A company broadcasts its message widely, and hopes to snag the eyes and ears of a few potential customers among the vast majority of people who ignore the message as irrelevant or annoying. Online marketing, with its emphasis on providing useful content, can be described as inbound marketing: The company creates material and makes it available, relying on users to search for it and find it themselves.&lt;/p&gt;
&lt;p&gt;Basically, online you can get rid of the outbound marketing "stick," which you use to beat people over the head repeatedly with your message. Instead, you can rely on the "carrot" of inbound marketing - useful and interesting content that people will want to discover for themselves and share with their friends.&lt;/p&gt;
&lt;p&gt;A few examples will highlight the differences:&lt;/p&gt;
&lt;table style="color: #000;" border="0" cellspacing="0" width="160" align="left"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;OUTBOUND&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;print ads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TV ads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;radio ads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;infomercials&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cold calling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tradeshows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;email blasts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;newsletters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;catalogs, brochures&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style="color: #000; padding-left: 20px;" border="0" cellspacing="0" width="180" align="center"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: 1px solid #ccc;"&gt;&lt;strong&gt;&lt;span style="color: #900;"&gt;INBOUND&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;blogs, white papers, ebooks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube videos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twitter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;podcasts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;webinars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSS feeds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pinterest&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;p&gt;Because you&amp;rsquo;re drawing in the customers who want to find what you have to offer, inbound marketing is far more cost effective than traditional advertising.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;It&amp;rsquo;s an investment&lt;/em&gt;. Once you post content online, it&amp;rsquo;s there when your potential customer comes to look for it. This is a big improvement over a TV or radio ad, which disappears into the ether, or a print ad, which ends up in the recycling bin. If you&amp;rsquo;ve got solid content, properly tagged, the search engines will continue to send people to you for free.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Lower costs&lt;/em&gt;. Facebook, Twitter, LinkedIn, YouTube, Google+, and Pinterest accounts are all free. Adding a blog to your website isn&amp;rsquo;t a huge investment, either.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Better targeting&lt;/em&gt;. The mass campaigns of outbound marketing are notoriously inefficient. By switching to inbound marketing, you increase your ROI because you&amp;rsquo;re not wasting your breath (or your advertising dollars) talking to people who aren&amp;rsquo;t interested in your message.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clearly, SEO isn&amp;rsquo;t going anywhere. It has an important role in inbound marketing &amp;mdash; it&amp;rsquo;s how your customers find you, after all &amp;mdash; but it can only be effective when the content is there to be found. Add in social media to expand your presence and increase the buzz, and you'll be well on your way to having a powerful online campaign.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ftGbBCduw48:5YjCKhfnkt8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ftGbBCduw48:5YjCKhfnkt8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ftGbBCduw48:5YjCKhfnkt8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ftGbBCduw48:5YjCKhfnkt8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ftGbBCduw48:5YjCKhfnkt8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ftGbBCduw48:5YjCKhfnkt8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ftGbBCduw48:5YjCKhfnkt8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ftGbBCduw48" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 01 May 2012 12:00:00 EST</pubDate><guid isPermaLink="false">446</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1229&amp;title=Outbound_vs_Inbound_Marketing_Its_Time_to_Make_the_Switch</feedburner:origLink></item><item><title>New Faces in Account Services</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/yfX-c8c1rsQ/blog.aspx</link><description>&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Sean Riley, Sr. Digital Producer &lt;img style="align:right; float: right; margin-left:10px; " src="/Uploads/Gallery/sean4.JPG" border="0" width="145" height="193" align="right" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Sean joined our team this spring after making the move from Brooklyn back to his home city of Philadelphia. After graduating with a degree in Marketing just across the river at Saint Joseph's University, he spent over 4 years in NYC with several agencies as an account and project manager. His past clients have included Dr Pepper Snapple Group, The Weinstein Company, Showtime Networks, and IFC Films, just to name a few. In his current role as Sr. Digital Producer, Sean is planning and managing projects for a number of our clients, as well as digging into Delphic Sage's own digital marketing efforts.&lt;/p&gt;
&lt;p&gt;Outside of the office, Sean lives in the city with his girlfriend and 2 French bulldogs. He enjoys playing guitar, teaching himself front-end coding, and yelling at the TV during Philly sports games. Follow Sean on Twitter for an abundance of Arrested Development references and other miscellaneous hilarity: @yelirnaes (http://twitter.com/yelirnaes).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img style="float: left; margin-right:10px; " src="/Uploads/Gallery/CK.jpg" border="0" width="120" height="308" /&gt;Courtney Kunkel, Account Coordinator&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Courtney eagerly joined Delphic Sage this spring after graduating from the University of Delaware, where she completed her Bachelor&amp;rsquo;s in Mass Communication, minoring in French and Psychology.&lt;/p&gt;
&lt;p&gt;During her studies, Courtney worked as an account executive intern at a Philadelphia-based full-service marketing communications agency where she assisted the pitch team in their efforts to win a valuable marketing contract. While there, she also perfected her skills in strategic planning, brand development, media relations, and creative marketing.&lt;/p&gt;
&lt;p&gt;As Account Coordinator, Courtney wears many hats - assisting with project management, content entry, marketing analytics, even playing plumber when needed! In June, Courtney plans to take on Delphic Sage as her own client to hone her account management chops.&lt;/p&gt;
&lt;p&gt;Highly energetic, Courtney loves to be active and spend time in the sun. If she&amp;rsquo;s not out meeting new people you&amp;rsquo;ll find her enjoying time with her young niece and nephew or running around with her Pit Bull &amp;amp; two Boxer puppies!&lt;/p&gt;
&lt;p&gt;Welcome, Sean and Courtney. We&amp;rsquo;re happy you&amp;rsquo;re here!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yfX-c8c1rsQ:iywO4_fkmHA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yfX-c8c1rsQ:iywO4_fkmHA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yfX-c8c1rsQ:iywO4_fkmHA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=yfX-c8c1rsQ:iywO4_fkmHA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yfX-c8c1rsQ:iywO4_fkmHA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yfX-c8c1rsQ:iywO4_fkmHA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=yfX-c8c1rsQ:iywO4_fkmHA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/yfX-c8c1rsQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 27 Apr 2012 12:00:00 EST</pubDate><guid isPermaLink="false">445</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1227&amp;title=New_Faces_in_Account_Services</feedburner:origLink></item><item><title>Active Social Media Users Prefer Social Logins on Websites</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/QEMNgcy3JIY/blog.aspx</link><description>&lt;p&gt;Even those who do complete a registration form do not necessarily provide accurate information: 88 percent of the survey's respondents admit that they have provided either false or incomplete information while registering on a website. And if they return later and don't remember their log-in name or password, 90 percent will leave the website rather than answer a security question or request a password reset.&lt;/p&gt;
&lt;p&gt;These numbers make it clear that social-media users are quite unlikely to stick around if they feel inconvenienced by the log-in process. This can be a problem for you, because they are also the ones who are most likely to actively use their social media accounts as part of the purchase process:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;78 percent have posted online about a product or service they like, or that they think others should know about or purchase&lt;/li&gt;
&lt;li&gt;83 percent say they are influenced by the positive comments and recommendations of others in their social network when considering a new product or service&lt;/li&gt;
&lt;li&gt;69 percent say positive reviews may increase the likelihood they will purchase a new product or service&lt;/li&gt;
&lt;li&gt;82 percent seek out or avoid companies based on comments from others in their social network&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clearly, these numbers mean you should consider adding a Facebook sign-in option. You should also investigate the possible downsides, though. For instance, analysts anticipate that Facebook might start charging for the interface, which is currently free. The uncertainties around this have many taking a wait-and-see attitude.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QEMNgcy3JIY:hjzJhfdWnY4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QEMNgcy3JIY:hjzJhfdWnY4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QEMNgcy3JIY:hjzJhfdWnY4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=QEMNgcy3JIY:hjzJhfdWnY4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QEMNgcy3JIY:hjzJhfdWnY4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QEMNgcy3JIY:hjzJhfdWnY4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=QEMNgcy3JIY:hjzJhfdWnY4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/QEMNgcy3JIY" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 25 Apr 2012 12:00:00 EST</pubDate><guid isPermaLink="false">444</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1214&amp;title=Active_Social_Media_Users_Prefer_Social_Logins_on_Websites</feedburner:origLink></item><item><title>How much SEO is too much SEO?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/IS2CrPckFeo/blog.aspx</link><description>&lt;p&gt;So what&amp;rsquo;s the difference between optimizing and over-optimizing? Let&amp;rsquo;s let Matt answer that:&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;The idea is basically to try and level the playing ground a little bit. So all those people who have sort of been doing, for lack of a better word, &amp;ldquo;over optimization&amp;rdquo; or &amp;ldquo;overly&amp;rdquo; doing their SEO, compared to the people who are just making great content and trying to make a fantastic &lt;span style="white-space: pre;"&gt; &lt;/span&gt;site, we want to sort of make that playing field a little bit more level...&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;We start to look at the people who sort of abuse it, whether they throw too many keywords on the page, or ... they exchange way too many links, or whatever they are doing to sort of go beyond what a normal person would expect in a particular area.&lt;/p&gt;
&lt;p&gt;In other words, Google is planning to &lt;a href="http://searchengineland.com/too-much-seo-google%E2%80%99s-working-on-an-%E2%80%9Cover-optimization%E2%80%9D-penalty-for-that-115627" target="_blank"&gt;crack down on spammers&lt;/a&gt; who are playing games with search algorithms. People like you, who are using SEO properly, should be fine.&lt;/p&gt;
&lt;p&gt;Using SEO properly means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Considering quality, not quantity, of keywords&lt;/em&gt;: Figure out the right keywords, and use them naturally in the page content. Don&amp;rsquo;t throw in a bunch of extra tags to try to snag the search engine.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Providing useful links&lt;/em&gt;: Whether they go elsewhere in your site or to an external resource, links can enhance your blog post or your FAQ page, but only if the user will benefit from the additional information. Shady autolinking practices are on Google&amp;rsquo;s radar.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Remembering why people search&lt;/em&gt;: People use search engines to find the information that will answer their question or solve their problem. You want to be the source that will do that for them &amp;mdash; by providing quality content and making it findable, not by tricking users into wasting their time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As Matt said:&lt;/p&gt;
&lt;p class="blog-blockquote"&gt;We tell people over and over again, &amp;ldquo;Make a compelling site. Make a site that&amp;rsquo;s useful. Make a site that&amp;rsquo;s interesting. Make a site that&amp;rsquo;s relevant to people&amp;rsquo;s interests.&amp;rdquo; &amp;hellip; All of the changes we make, over 500 a year, are designed to try to approximate if a user lands on that page, just how happy are they going to be with what they get? So if you keep that in mind, then you should be in good shape no matter what.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;We couldn&amp;rsquo;t say it better ourselves &amp;mdash; make your site compelling, useful, and interesting, and your visitors will be happy to find it.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IS2CrPckFeo:FII2NrUQSI0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IS2CrPckFeo:FII2NrUQSI0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IS2CrPckFeo:FII2NrUQSI0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=IS2CrPckFeo:FII2NrUQSI0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IS2CrPckFeo:FII2NrUQSI0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IS2CrPckFeo:FII2NrUQSI0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=IS2CrPckFeo:FII2NrUQSI0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/IS2CrPckFeo" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 24 Apr 2012 12:00:00 EST</pubDate><guid isPermaLink="false">443</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1208&amp;title=How_much_SEO_is_too_much_SEO</feedburner:origLink></item><item><title>Understanding &amp;amp; Using Web Fonts: Part 1</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/dZQGtyMIOgQ/blog.aspx</link><description>&lt;h2&gt;Three Reasons To Use Web Fonts&lt;/h2&gt;
&lt;h3&gt;Improving Design&lt;img style="float: left; margin: 0 20px 20px 0;" src="/Uploads/Gallery/blog/2012/kitchen-sink-studios3.jpg" border="0" alt="Kitchen Sink Studios" title="Kitchen Sink Studios" width="255" height="184" /&gt;&lt;/h3&gt;
&lt;p&gt;Using the same plain fonts that have been used for years just doesn&amp;rsquo;t cut it anymore, and there has been a rise in web design to use more interesting fonts. Standard web safe fonts are still great for large blocks of content, but headers call for cleaner and better designed fonts. It&amp;rsquo;s also great for designers. We can have more creative freedom which brings more variety to the design.&lt;/p&gt;
&lt;h3&gt;Better SEO&lt;/h3&gt;
&lt;p&gt;Search engines find content and prioritize it on a web page based on the tags they&amp;rsquo;re in, hence why proper semantics are important. Header tags will take on much more leverage than the alt tag of an image, so it&amp;rsquo;s pretty easy to see why using font embedding for headlines, blog post titles, and other important pieces of content can be better off in a header tag, rather than used as an image.&lt;/p&gt;
&lt;h3&gt;Ease of Use&lt;img style="float: right; margin: 0 0 5px 20px;" src="/Uploads/Gallery/blog/2012/nest2.jpg" border="0" width="300" height="186" /&gt;&lt;/h3&gt;
&lt;p&gt;Get the font(s) of your choice set up during the development process, and enjoy lighter maintenance later. No need to create custom images for headers, sliders, etc. The content can be changed easily, which is great for updates on your end, and ease of use on a client&amp;rsquo;s end.&lt;/p&gt;
&lt;p&gt;Stay tuned for a future post that touches on Web Font Formats.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dZQGtyMIOgQ:V28nQewTgbU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dZQGtyMIOgQ:V28nQewTgbU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dZQGtyMIOgQ:V28nQewTgbU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=dZQGtyMIOgQ:V28nQewTgbU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dZQGtyMIOgQ:V28nQewTgbU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dZQGtyMIOgQ:V28nQewTgbU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=dZQGtyMIOgQ:V28nQewTgbU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/dZQGtyMIOgQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 19 Apr 2012 12:00:00 EST</pubDate><guid isPermaLink="false">442</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1193&amp;title=Understanding_amp_Using_Web_Fonts_Part_1</feedburner:origLink></item><item><title>KPIs: SMART Metrics with Muscle</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/9BHrVOd4gyQ/blog.aspx</link><description>&lt;p&gt;There are three main reasons to create and use KPIs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To evaluate performance: to learn what&amp;rsquo;s working and what isn&amp;rsquo;t, and make changes to improve.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;To demonstrate compliance with external standards, whether they are mandatory (industry regulations) or voluntary (environmental impact or charitable giving).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;To control and monitor staff: these should be implemented carefully. Since employees are apt to be more concerned about delivering on what is measured rather than on their actual performance, top-down KPIs can be counterproductive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Performance evaluation KPIs are the most common, and they&amp;rsquo;re the ones marketers find the most useful. It&amp;rsquo;s clear how you can benefit from them: data on customer retention or the percentage of preliminary inquiries that convert to sales provide clear indications of the health of your business, and data on traffic make it clear how effective your website is, both as a communications channel and as a sales tool.&lt;/p&gt;
&lt;p&gt;A good KPI is &lt;a href="http://en.wikipedia.org/wiki/SMART_criteria"&gt;SMART&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Specific&lt;/em&gt;: Instead of  a vague goal like &amp;ldquo;increase website traffic,&amp;rdquo; you should create a KPI that will help you track the specific activity that will most benefit your business. This might be to increase the number of visitors weekly, the time spent per visit, or the average number of click-throughs.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Measurable&lt;/em&gt;: Even &amp;ldquo;customer satisfaction&amp;rdquo; can be quantified, if you set a goal like &amp;ldquo;raise average survey score from 3.2 to 3.8.&amp;rdquo;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Attainable&lt;/em&gt;: Goals should be realistic. It&amp;rsquo;s frustrating, not inspiring, to set a goal of a billion dollars in weekly sales.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Relevant &lt;/em&gt;to the success of your organization or project. You could calculate the percentage of your customers who have last names beginning with the letter &amp;ldquo;M,&amp;rdquo; but why bother?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Time-bound&lt;/em&gt;: Creating deadlines keeps you on track to meet your goals. It&amp;rsquo;s easy to back-burner long-term objectives when you&amp;rsquo;re busy with day-to-day problems.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remember, KPIs are not just metrics counting anything that can be counted, because not all data is useful in evaluating the success of a campaign. KPIs are metrics with muscle. Start by identifying what your issues are, then gather data that will illuminate those issues, instead of gathering the data first and then trying to figure out what it might signify.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=9BHrVOd4gyQ:vH7xxS6-xn8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=9BHrVOd4gyQ:vH7xxS6-xn8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=9BHrVOd4gyQ:vH7xxS6-xn8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=9BHrVOd4gyQ:vH7xxS6-xn8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=9BHrVOd4gyQ:vH7xxS6-xn8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=9BHrVOd4gyQ:vH7xxS6-xn8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=9BHrVOd4gyQ:vH7xxS6-xn8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/9BHrVOd4gyQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 17 Apr 2012 12:00:00 EST</pubDate><guid isPermaLink="false">439</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1181&amp;title=KPIs_SMART_Metrics_with_Muscle</feedburner:origLink></item><item><title>So what is Pinterest anyway?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/CQ6Ao3UxalM/blog.aspx</link><description>&lt;h2&gt;So...what &lt;em&gt;is&lt;/em&gt; Pinterest? How do you explain it to people who have never been on it before?&lt;/h2&gt;
&lt;p&gt;As I was scrolling through my followers' pins yesterday, it hit me: Pinterest is akin to that real world moment when you walk into a friend's house for the first time, to attend a dinner party, and you see:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The way she hung her artwork behind her sofa&lt;/li&gt;
&lt;li&gt;The beautifully decorated dinner table, complete with cute little nametags for the wine glasses!&lt;/li&gt;
&lt;li&gt;The hostess's outfit - from her perfectly coifed hair, to her funky earrings, to her gorgeous dress&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You then get a tour of her house, where you &lt;em&gt;ooh&lt;/em&gt; and &lt;em&gt;ah&lt;/em&gt;h at her bedroom furniture, you marvel at the clever way she sectioned off the children's play area from the exercise equipment in the family room, and cringe at the gaudy pattern on her curtains.  These all become snapshots in your mind - you'll replicate some of her ideas, you'll be shocked at others, but either way, you'll have a great time looking through someone else's life - her &lt;em&gt;interests&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Pinterest is a way to digitally, visually compile all those "That's clever!" or "This is delicious!" or "Why didn't I think of that but I'm glad I know now!" moments from that dinner party and beyond - those exchanges between friends, family, acquaintances (and sometimes even strangers) that make up daily human interaction. Snapshots of life, organized, ranked, and commented on...by you. No wonder it's number three already.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CQ6Ao3UxalM:R7gdlYX0u3c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CQ6Ao3UxalM:R7gdlYX0u3c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CQ6Ao3UxalM:R7gdlYX0u3c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CQ6Ao3UxalM:R7gdlYX0u3c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CQ6Ao3UxalM:R7gdlYX0u3c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CQ6Ao3UxalM:R7gdlYX0u3c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CQ6Ao3UxalM:R7gdlYX0u3c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/CQ6Ao3UxalM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 10 Apr 2012 12:00:00 EST</pubDate><guid isPermaLink="false">438</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1171&amp;title=So_what_is_Pinterest_anyway</feedburner:origLink></item><item><title>Facebook Fan Page Redesign - Whether You Like It or Not</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/vfZsjDQaKEo/blog.aspx</link><description>&lt;img src="/Uploads/Gallery/VirginAmerica2.jpg" border="0" width="525" height="310" /&gt;&lt;br /&gt;
&lt;h3&gt;Keep your profile picture consistent&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;This is your identity. We recommend using your logo, as it represents your business on all other parts of Facebook. This includes all newsfeed stories, as well as Ad units if you have campaigns running.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Get creative with your cover photo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;The cover photo is meant to shine due to its immediate visual impact. We recommend you make it unique to your brand or product. If I visit your company&amp;rsquo;s page, what is going to make me remember it? The cover photo should be bold, visually appealing and tailored to you. Note that covers may NOT include price or purchase information, contact information, references to Facebook features or actions (such as &amp;ldquo;Like&amp;rdquo; or &amp;ldquo;Share&amp;rdquo;), and calls to action (such as &amp;ldquo;Visit our Website&amp;rdquo; or &amp;ldquo;Tell all your Friends&amp;rdquo;). Even a cover photo with an arrow pointing to any Facebook feature will be banned! All company information can be written under the About section located directly under the profile picture. Also note that Facebook cover photo dimensions are 851 pixels wide and 315 pixels tall. Any images smaller than these dimensions will get stretched to this larger size. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Different Look and Feel for Application Tabs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Remember your left-aligned application tabs? They will now be featured to the right of the About section, directly under the cover photo. There will always be a total of four main apps featured, yet your photos will always be first. The following three can be chosen and altered in any order. You may be asking, what do I do if I have more than four? A total of twelve apps is the Facebook maximum and these can be accessed by using the drop-down arrow next to your visible applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="/Uploads/Gallery/AT&amp;amp;T-sample-post2.jpg" border="0" width="525" height="414" /&gt;
&lt;h2&gt;Controling your timeline content.&lt;/h2&gt;
&lt;h3&gt;Pin a post to the top of your timeline.&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;This feature is highly recommended by Facebook, as it sends a message to the fans that this post is important. The pinned post has a maximum lifespan of seven days and it is recommended that you do not change this post until the seven days has commenced. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Starred posts are fun!&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;If you star a post, your timeline entry will now become double-wide, taking up the entire width of the page. This feature allows you to tell your audience that the post is important and will always show on your timeline. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Turn a unique post into a &amp;ldquo;milestone&amp;rdquo; moment.&amp;nbsp;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;These milestone moments are your company&amp;rsquo;s highlighted accomplishments, past acquisitions, awards, or anything that had a clear impact on your business. They may be back-dated to note key events in your brand history. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FYI, you can revert any of these posts back to the original setting by clicking the edit pencil while hovering over the post you would like to change.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/Friend Likes.jpg" border="0" width="419" height="306" /&gt;&lt;/p&gt;
&lt;h3&gt;Friends are even More Important&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Friend Activity is now  a huge plus when gaining new fans. Now, visitors of your page can see how their friends have engaged with your page, and it&amp;rsquo;s all about making the experience personal for them. They will be more inclined to like your page, simply because their friends have engaged with your brand in one way or another. &lt;/li&gt;
&lt;/ul&gt;
&lt;img src="/Uploads/Gallery/admin-panel2.jpg" border="0" width="525" height="306" /&gt;&lt;br /&gt;
&lt;h3&gt;Get to Know Your Admin Panel Your admin panel is now the central hub for all of your notifications and insights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;You can now view notifications, messages, new likes, insights, page tips, manage your site, and build your audience. You should play around with all these features and get to know them. One feature I found quite interesting is the opportunity for fans to connect with you through messaging. If you have a large company that is publicly charged, you might want to think about leaving this option off. Receiving too many messages could get overwhelming and you do not want to disappoint your fans by taking months to respond. If you are a local Mom and Pop shop try leaving it on as it&amp;rsquo;s a great way to connect with your fans on a personal level. It&amp;rsquo;s up to you!&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Facebook insights will now become your best friend&amp;nbsp;&amp;nbsp;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;This tool is so important because as an administrator you MUST measure your social media marketing performance. By studying your insights, you will be able to track the health of your page, try new tactics, find out what&amp;rsquo;s working and isn&amp;rsquo;t working, monitor outreach, and more. But we already knew that, right?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Okay admins, did you enjoy that crash course? The most important thing is to practice patience and remember that, as you are transitioning to the new Timeline, your fans and potential fans will be too.&lt;/p&gt;
&lt;p&gt;Think about it this way, you want to tell a story. Does your timeline flow? Does your cover photo captivate your audience? Are you utilizing starred posts and pinned posts? Here&amp;rsquo;s what you can do - monitor your Facebook page insights a week after the change; this is going to tell you a lot about your audience. If your observations are negative, you might have to share your own little crash course with your fans. If your insights are looking normal or better than normal, you&amp;rsquo;ve got the gift.&lt;/p&gt;
&lt;p&gt;May the Facebook force be with you, master administrator.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vfZsjDQaKEo:jsoqQYEMJ8w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vfZsjDQaKEo:jsoqQYEMJ8w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vfZsjDQaKEo:jsoqQYEMJ8w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=vfZsjDQaKEo:jsoqQYEMJ8w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vfZsjDQaKEo:jsoqQYEMJ8w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vfZsjDQaKEo:jsoqQYEMJ8w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=vfZsjDQaKEo:jsoqQYEMJ8w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/vfZsjDQaKEo" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 30 Mar 2012 12:00:00 EST</pubDate><guid isPermaLink="false">437</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1215&amp;title=Facebook_Fan_Page_Redesign__Whether_You_Like_It_or_Not</feedburner:origLink></item><item><title>Spring Cleaning - Clean up your Adwords Campaigns!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/U7xh_ZRWhEo/blog.aspx</link><description>&lt;p&gt;Don't worry; cleaning up around the house never even crossed this marketer's mind.  I'm talking about sitting down and taking a good look at your Adwords campaigns.  It's easy to get wrapped up in counting conversions and creating reports without taking the time to do a little clean-up work,  so here are a few tips on how to Spring Clean your campaigns.&lt;/p&gt;
&lt;h2&gt;Cull Your Keywords&lt;/h2&gt;
&lt;p&gt;&lt;a href="/Uploads/Gallery/No-Impression-screenshots.jpg"&gt;&lt;img style="float: right; margin-left: 10px; border: 1px solid #cccccc;" src="/Uploads/Gallery/No-Impression-screenshots-thumb.jpg" border="0" width="305" height="140" /&gt;&lt;/a&gt;First things first, pause any keywords that have zero impressions for the past two months.  You know exactly which words I'm talking about - the ones you picked up a few months ago and they still haven't had one single impression - these are total deadweight keywords and they aren't helping you achieve your ultimate goal.  Don't get me wrong, always experiment with new keywords and it's great to have a nice reserve of them on hand, but at some point you have to realize that enough is enough and cut the proverbial keyword cord.&lt;/p&gt;
&lt;p&gt;&lt;a href="/Uploads/Gallery/PPC No Conversions.jpg"&gt;&lt;img style="float: left; margin-right: 10px; border: 1px solid #cccccc;" src="/Uploads/Gallery/PPC-No-Conversions-screenshot-thumb.jpg" border="0" width="305" height="140" /&gt;&lt;/a&gt;Okay, so you've removed the keywords with no impressions - What else? - You see those keywords that have a ton of clicks and not one single conversion?  These keywords are great at one thing: costing you a ton of money.  So go ahead and ask yourself, "Is it really worth it?"  Will this ever get me a conversion?  Ultimately the answer will be "No."  These keywords are the "Fredo Corleone" of your campaign: sure, they mean well, but at the end of the day they are weak and need to be disposed of.&lt;/p&gt;
&lt;h2&gt;Think Like a Consumer&lt;/h2&gt;
&lt;p&gt;Now you probably haven't peeked at your ads all winter so go ahead and take a nice, long look.  Forget about the conversion rates and clicks and focus on the ad as a consumer.  Ask yourself: does this ad inspire you to learn more?  Does it create want or knowledge of the product advertised?  Most importantly, is there a call to action?  A great PPC ad incorporates all of these elements.  Sometimes it's tough to look at an ad objectively after working on it for so long so send the ad over to a non-marketing co-worker and ask their honest opinion.  Would they click on the ad?  If not, why?&lt;/p&gt;
&lt;h2&gt;Remove the Superfluous&lt;/h2&gt;
&lt;p&gt;Ads have become way too wordy lately.  Short and concise is the name of the game.  People's attention spans are very short (and in this time of &lt;a href="https://twitter.com/#!/delphicsage" target="_blank"&gt;140 characters&lt;/a&gt; they are getting even shorter) so you need to hit them over the head very quickly.  &lt;em&gt;Short and concise is the name of the game.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A few copywriting tips:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use "&amp;amp;" instead of the word "and."  It cuts down on the clutter immensely. &lt;/li&gt;
&lt;li&gt;Please, please don't include exclamation points in your ads.  They waste a perfectly good character and they don't positively impact your ad.  Have you ever picked one brand over another due to the inclusion of an exclamation point?  No? Your Honor, I rest my case. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend that you run through your campaigns at least once a month, and be ready to change your approach because the digital world changes quickly and we must keep up with it.  &lt;strong&gt;There's a good chance that a strategy that works in October will not work as well in April&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It's always tough to go back and evaluate some of the decisions you've made but it's a task that we as marketers have to face.  So if you "Spring Clean" your campaigns monthly, your ads will perform better, your keywords will all be batting .300 (or above!) and, most importantly, those monthly campaign reports will have the boss buying you that super-pricey beer at happy hour.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=U7xh_ZRWhEo:f1jH6Sk7U1k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=U7xh_ZRWhEo:f1jH6Sk7U1k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=U7xh_ZRWhEo:f1jH6Sk7U1k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=U7xh_ZRWhEo:f1jH6Sk7U1k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=U7xh_ZRWhEo:f1jH6Sk7U1k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=U7xh_ZRWhEo:f1jH6Sk7U1k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=U7xh_ZRWhEo:f1jH6Sk7U1k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/U7xh_ZRWhEo" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 22 Mar 2012 12:00:00 EST</pubDate><guid isPermaLink="false">436</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1133&amp;title=Spring_Cleaning__Clean_up_your_Adwords_Campaigns</feedburner:origLink></item><item><title> Delphic Sage  Listed as Top Systems Integrator</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/AeVO_MSCXg4/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=AeVO_MSCXg4:YQBhHrh1SeQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=AeVO_MSCXg4:YQBhHrh1SeQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=AeVO_MSCXg4:YQBhHrh1SeQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=AeVO_MSCXg4:YQBhHrh1SeQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=AeVO_MSCXg4:YQBhHrh1SeQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=AeVO_MSCXg4:YQBhHrh1SeQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=AeVO_MSCXg4:YQBhHrh1SeQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/AeVO_MSCXg4" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 14 Mar 2012 12:00:00 EST</pubDate><guid isPermaLink="false">435</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1119&amp;title=_Delphic_Sage__Listed_as_Top_Systems_Integrator</feedburner:origLink></item><item><title>New Hires: Marketing and Front End Departments</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ZcjrZN0dfdc/blog.aspx</link><description>&lt;h3&gt;&lt;br /&gt;Julia Russell, Digital Marketing Specialist&lt;img style="float: right; margin-left: 10px; margin-bottom: 10px;" src="/Uploads/Gallery/blog/jules3.jpg" border="0" width="188" height="251" /&gt;&lt;/h3&gt;
&lt;p&gt;Julia joined Delphic Sage in November as a freelancer while simultaneously conquering her last semester at Temple University where she majored in Marketing. Her previous endeavor was an internship at a well-known Philadelphia newspaper as their social media intern. While there, she managed various social media accounts, helped with SEO, and assisted in launching a brand new website.&lt;br /&gt;&lt;br /&gt;Always eager to increase her knowledge about everything digital, Julia leapt at the opportunity to join us full-time as a Digital Marketing Specialist. Some of her tasks include running various social media accounts, quality assurance testing, updating content in Sitecore CMS, working with metadata, and much more.&lt;/p&gt;
&lt;p&gt;Her "Pinterests" include traveling, Italian cooking, and everything Philly! For more information about Julia, connect with her on Twitter: &lt;a href="http://www.twitter.com/julesinphilly" target="_blank"&gt;@Julesinphilly.&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Jeff Mills, Sr. Front End Developer&lt;/h3&gt;
&lt;p&gt;Jeff has a robust resume including stints at &lt;a href="http://singularitydesign.com/" target="_blank"&gt;singularitydesign.com&lt;/a&gt; where he developed bleeding edge web technologies with HTML5 canvas, &lt;a href="http://tncc.edu/" target="_blank"&gt;tncc.edu&lt;/a&gt; using Wordpress a CMS, &lt;a href="http://www.famouscookies.com/" target="_blank"&gt;famouscookies.com&lt;/a&gt; working on a dynamic E-Commerce site, and &lt;a href="http://spychresearch.com/" target="_blank"&gt;spychresearch.com&lt;/a&gt; - a site built around a flash gaming concept.&lt;br /&gt;&lt;br /&gt;At Delphic Sage, Jeff collaborates with web designers and back-end developers to create clean cross-browser compatible code and primarily focuses on HTML, CSS, and JavaScript.&lt;/p&gt;
&lt;p&gt;&lt;img style="float: left; margin-right: 10px; margin-bottom: 10px;" src="/Uploads/Gallery/blog/jeff3.jpg" border="0" width="215" height="190" /&gt;Jeff graduated from the Art Institute of Philadelphia with a Bachelor of Science and majored in Multimedia and Web Design, and describes himself as "...a tinker, I usually have to figure out how &lt;br /&gt;something works."&lt;br /&gt;&lt;br /&gt;He rides his BMX bike whenever he can, it will always be a part of his passions. When he's not building computers, or gas powered RC cars, he's playing with his newly born son... teaching him the ways of the Force.&lt;br /&gt;&lt;br /&gt;Welcome to Delphic Sage, Julia and Jeff.&amp;nbsp; We're so glad you're here!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZcjrZN0dfdc:ia1j4dxkJ60:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZcjrZN0dfdc:ia1j4dxkJ60:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZcjrZN0dfdc:ia1j4dxkJ60:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ZcjrZN0dfdc:ia1j4dxkJ60:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZcjrZN0dfdc:ia1j4dxkJ60:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZcjrZN0dfdc:ia1j4dxkJ60:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ZcjrZN0dfdc:ia1j4dxkJ60:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ZcjrZN0dfdc" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 12 Mar 2012 12:00:00 EST</pubDate><guid isPermaLink="false">434</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1107&amp;title=New_Hires_Marketing_and_Front_End_Departments</feedburner:origLink></item><item><title>Ooo la la - Sunrise Quebec Redesign</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/uxJ6q-tz1Wo/blog.aspx</link><description>&lt;p&gt;We are proud to announce our latest redesign for Sunrise Senior Living, &lt;a href="http://www.sunrisequebec.ca/" target="_blank"&gt;Sunrise Quebec&lt;/a&gt;. The bilingual site features the Sunrise Communities located in Quebec, Canada, touting Sunrise quality care and services and showcasing the very beautiful (or tres belle) communities - in both English and French.&lt;/p&gt;
&lt;p&gt;As you can imagine, styling for longer French words made for interesting discussions with our front-end development team, and we were lucky to have a few people familiar with the French language in our QA group. Our favorite translation? "Alzheimers &amp;amp; Memory Care" is "Soins pour personnes atteintes de la maladie d'Alzheimer ou de troubles de la m&amp;eacute;moire" en francais- quite a mouthful to fit in a drop down menu!&lt;/p&gt;
&lt;p&gt;Well done, team... or as they say in Quebec - Bon Travail! Bravo!&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/Quebec_splashpage_v2.jpg" border="0" width="550" height="355" /&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uxJ6q-tz1Wo:YbC6pccSMVo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uxJ6q-tz1Wo:YbC6pccSMVo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uxJ6q-tz1Wo:YbC6pccSMVo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=uxJ6q-tz1Wo:YbC6pccSMVo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uxJ6q-tz1Wo:YbC6pccSMVo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uxJ6q-tz1Wo:YbC6pccSMVo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=uxJ6q-tz1Wo:YbC6pccSMVo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/uxJ6q-tz1Wo" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 05 Mar 2012 12:00:00 EST</pubDate><guid isPermaLink="false">433</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1089&amp;title=Ooo_la_la__Sunrise_Quebec_Redesign</feedburner:origLink></item><item><title>How to Combine Facebook Fan Pages</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/QYtqkVgtPes/blog.aspx</link><description>&lt;h3&gt;BEFORE YOU BEGIN...&lt;/h3&gt;
&lt;h4&gt;BEWARE:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;The pages must have SIMILAR NAMES (or they won't be eligible for merge, so says &lt;a href="http://www.facebook.com/help/?faq=249601088403018&amp;amp;ref_query=merge" target="_blank"&gt;Facebook&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;All content that you'd like to keep from the old page must be pulled down before the merge (we grabbed a few photo albums), because you lose everything on the old page - including unique descriptions, photo albums, comments - poof! - all gone after the merge.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;PREPARE:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Make sure you have admin access to both pages.&lt;/li&gt;
&lt;li&gt;Open up the RESOURCES tab on the Page you want to KEEP, aka the "Primary Page"                                 
&lt;ul&gt;
&lt;li&gt;If you're eligible for a merge, you'll see a line that says "Merge Duplicate Pages"&lt;/li&gt;
&lt;li&gt;If you don't see that line, then you're out of luck. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Give the fans on your old page a chance to move over to the Primary Page themselves - simple messaging like "Heads up, we're shutting down this page and moving to: Facebook.com/xxx - join us there!" - should encourage people to move (in our experience, most people ignore these updates; however, your audience may be different, so do what you think is best).&lt;/li&gt;
&lt;li&gt;Clean up your Primary Page - if it was geared towards a specific audience and now will be more general, make sure that all creative elements, copy - the overall tone - reflect your social media strategy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Steps for Merging Facebook Pages:&lt;/h2&gt;
&lt;p&gt;1. Start from the Primary Page (the page you want to KEEP)&lt;/p&gt;
&lt;p&gt;2. Navigate to the RESOURCES tab&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/FB-resources.jpg" border="0" width="530" height="283" /&gt;&lt;/p&gt;
&lt;p&gt;3. Click on the Merge Duplicate Pages button&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the box of the old page - note the warning that all content will be lost, permanently deleted - ouch!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/FB-merge-checkbox.jpg" border="0" alt="Facebook Merge Checkbox" title="Facebook Merge Checkbox" /&gt;&lt;/p&gt;
&lt;p&gt;4. Click Merge Pages&lt;/p&gt;
&lt;p&gt;5. Are You Sure? Box pops up - if you're sure, pull the trigger.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you haven't pulled down the photo albums yet or taken note of descriptions like content in the "About" or "Description" sections, hold up. Capture that data if you need to. Once you merge, there's no turning back. Check, check, and check again because it will be gone, baby gone.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/FB-merge-confirm.jpg" border="0" alt="Facebook Merge Are You Sure Notice" title="Facebook Merge Are You Sure Notice" /&gt;&lt;/p&gt;
&lt;p&gt;6. Take a deep breath, say goodbye to the old page, take another deep breath, and Click Merge Pages.&lt;/p&gt;
&lt;p&gt;7. SUCCESS! You did it. Congrats!&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/FB-merge-success.jpg" border="0" alt="Facebook Merge Success" title="Facebook Merge Success" /&gt;&lt;/p&gt;
&lt;p&gt;It's really as simple as that to merge Facebook fan pages. With a little prep beforehand and a few clicks of your mouse, you'll quickly be on your way to streamlining your social media marketing messaging.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QYtqkVgtPes:ppj8uSa8VGw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QYtqkVgtPes:ppj8uSa8VGw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QYtqkVgtPes:ppj8uSa8VGw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=QYtqkVgtPes:ppj8uSa8VGw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QYtqkVgtPes:ppj8uSa8VGw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QYtqkVgtPes:ppj8uSa8VGw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=QYtqkVgtPes:ppj8uSa8VGw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/QYtqkVgtPes" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 27 Feb 2012 12:00:00 EST</pubDate><guid isPermaLink="false">432</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1082&amp;title=How_to_Combine_Facebook_Fan_Pages</feedburner:origLink></item><item><title>Let's Go Another Round: Sitecore Webforms</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/u9HIDLQy82o/blog.aspx</link><description>&lt;p&gt;Many of our clients have Webforms For Marketers in place, and need a way to quickly summarize the submissions along with the user's analytics data.  Easy enough with the Form Reports included with Sitecore Webforms For Marketers, right?  What about getting the analytics data for each submission, like the IP address it was submitted from or any of the other analytics data the Sitecore OMS gathers?  It's easy enough to look one-by-one in the Form Reports (I hope you knew you could do that), but we needed a way to summarize the IP Address along with the submission content in a spreadsheet.  But how??&lt;/p&gt;
&lt;p&gt;The first problem was getting the list of webform submissions for each form. After some heavy Googling and scanning the Sitecore Developer Network, I have this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt; List args = new List();&lt;br /&gt; args.Add(new GridFilter("storageName", string.Empty, GridFilter.FilterOperator.Contains));&lt;br /&gt; args.Add(new GridFilter("dataKey", webform.ID.ToString(), GridFilter.FilterOperator.Contains)); &lt;br /&gt;List submits = Sitecore.Forms.Data.DataManager.GetForms().GetPage(new PageCriteria(0, 0x7ffffffe), null, args).ToList();&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="float: left; margin: 0pt 5px 10px 0pt;" src="/Uploads/Gallery/newWebform.jpg" border="0" title="The Session table has an ID connection to virtually every table in the Analytics database" width="220" height="825" /&gt;This snippet uses all Sitecore APIs and works like a dream. The only missing factor is getting the ID of the webform item, which I got by supplying the site tree location of the form (/sitecore/system/modules/web forms for marketers/website/&amp;lt;where you save your webforms&amp;gt;). Basically it uses filters (Sitecore.Web.UI.Grids.GridFilter) to find the submissions for that particular form (dataKey contains the webform's ID).  The code returns a list of Sitecore.Forms.Data.IForms, which contain all the submitted fields and values along with a link to the related analytics data.  Bingo!&lt;/p&gt;
&lt;p&gt;Once I had the list of submitted forms, I had to get the analytics data into a data object along with the submitted form.  It didn't take long to find the IForm.SessionID property, which is the key to a user's analytics data stored in the analytics database.  For this particular report, we wanted to show the IP address of the user and the site which referred them along with the submitted values.&lt;/p&gt;
&lt;p&gt;Sitecore provides an entire Analytics API to help with accessing the analytics data the OMS has collected, which I take advantage of here.  The Analytics Manager object has a function for getting the Session object from the ID, which holds the IP Address of the user who submitted the form.&lt;/p&gt;
&lt;p&gt;As well as the IP Address, the Referring Site needs to be included in the report.  Strangely enough, the Analytics Manager doesn't have a GetReferringSiteByReferringSiteId function, but no matter.  I was able to get a list of all referring sites, and a simple IEnumerable got the one I was looking for.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;code&gt;if (AnalyticsTracker.IsActive)&lt;br /&gt; {&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sitecore.Analytics.Session session = AnalyticsManager.GetSessionBySessionId(submission.SessionId);&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (session != null)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;submissionWrapper.IPAddress = session.IpAddress;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List referringSites = Sitecore.Analytics.AnalyticsManager.GetReferringSites();&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;submissionWrapper.ReferringSite = referringSites.FirstOrDefault(site =&amp;gt; site.ReferringSiteId == session.ReferringSiteId);&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt; }&lt;/code&gt;
&lt;p&gt;The rest of the work involved to render the data is neither here nor there - I simply made a repeater with literals for each form field and value along with my acquired analytics data and an exporting function to Excel.&amp;nbsp; The application has been in full swing for a couple months now and the smiles on our Marketing Team's faces tell me it's doing its job right.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=u9HIDLQy82o:ANF21N1fPMk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=u9HIDLQy82o:ANF21N1fPMk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=u9HIDLQy82o:ANF21N1fPMk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=u9HIDLQy82o:ANF21N1fPMk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=u9HIDLQy82o:ANF21N1fPMk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=u9HIDLQy82o:ANF21N1fPMk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=u9HIDLQy82o:ANF21N1fPMk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/u9HIDLQy82o" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 16 Feb 2012 12:00:00 EST</pubDate><guid isPermaLink="false">431</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1083&amp;title=Lets_Go_Another_Round_Sitecore_Webforms</feedburner:origLink></item><item><title>Holiday Greetings from Delphic Sage</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/TtGMd3l3RLo/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=TtGMd3l3RLo:WdQbaBEDqV4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=TtGMd3l3RLo:WdQbaBEDqV4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=TtGMd3l3RLo:WdQbaBEDqV4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=TtGMd3l3RLo:WdQbaBEDqV4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=TtGMd3l3RLo:WdQbaBEDqV4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=TtGMd3l3RLo:WdQbaBEDqV4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=TtGMd3l3RLo:WdQbaBEDqV4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/TtGMd3l3RLo" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 22 Dec 2011 12:00:00 EST</pubDate><guid isPermaLink="false">429</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1075&amp;title=Holiday_Greetings_from_Delphic_Sage</feedburner:origLink></item><item><title>Delphic Sage Again Recognized as a Leading Digital Agency</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/M9d_JiUlopU/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=M9d_JiUlopU:zMFY6ixsPWU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=M9d_JiUlopU:zMFY6ixsPWU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=M9d_JiUlopU:zMFY6ixsPWU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=M9d_JiUlopU:zMFY6ixsPWU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=M9d_JiUlopU:zMFY6ixsPWU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=M9d_JiUlopU:zMFY6ixsPWU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=M9d_JiUlopU:zMFY6ixsPWU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/M9d_JiUlopU" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 10 Oct 2011 12:00:00 EST</pubDate><guid isPermaLink="false">427</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1069&amp;title=Delphic_Sage_Again_Recognized_as_a_Leading_Digital_Agency</feedburner:origLink></item><item><title>Web Redesign for Leading Law Firm</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/tBmQSIDpLvI/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=tBmQSIDpLvI:VWUzLSHBSFs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=tBmQSIDpLvI:VWUzLSHBSFs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=tBmQSIDpLvI:VWUzLSHBSFs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=tBmQSIDpLvI:VWUzLSHBSFs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=tBmQSIDpLvI:VWUzLSHBSFs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=tBmQSIDpLvI:VWUzLSHBSFs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=tBmQSIDpLvI:VWUzLSHBSFs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/tBmQSIDpLvI" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Sat, 24 Sep 2011 12:00:00 EST</pubDate><guid isPermaLink="false">426</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1063&amp;title=Web_Redesign_for_Leading_Law_Firm</feedburner:origLink></item><item><title>PBJ Recognition for Web Design </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/RSJPYsDvuZM/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=RSJPYsDvuZM:4_na0kGiBtE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=RSJPYsDvuZM:4_na0kGiBtE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=RSJPYsDvuZM:4_na0kGiBtE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=RSJPYsDvuZM:4_na0kGiBtE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=RSJPYsDvuZM:4_na0kGiBtE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=RSJPYsDvuZM:4_na0kGiBtE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=RSJPYsDvuZM:4_na0kGiBtE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/RSJPYsDvuZM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Sun, 21 Aug 2011 12:00:00 EST</pubDate><guid isPermaLink="false">428</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1068&amp;title=PBJ_Recognition_for_Web_Design_</feedburner:origLink></item><item><title>Web Forms and Javascript, Oh My!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/rkdhrMadkTQ/blog.aspx</link><description>&lt;p&gt;As you probably know, Google services like AdWords and Analytics use a small javascript snippet to track information about your users. Web Forms For Marketers (WFFM) uses Sitecore's content management system to give a simple way of creating and placing a form on your website for anything from subscribing to the site's newsletter to a contact form, and everything in between. Today, I needed to add an AdWords conversion tracking code to the page, but only after a web form had been submitted. In other situations this is easy, but since the web form is rendered on the page by Sitecore I had no way of touching it as a normal ASP.NET object. Instead, I had to write my own Save Task for WFFM. While this sounds like a simple enough task, it took several moving parts and they all needed to gel just right to get the desired result.&lt;/p&gt;
&lt;p&gt;First, I had to create the new save task for Webforms to access in Sitecore. There are already a bunch of these that come shipped with WFFM.&amp;nbsp; They're tasks like Save to Database, Send Mail, Subscribe to Target Audience, or it can be tied to the OMS by registering a campaign or completing a goal.&amp;nbsp; After traversing to the save tasks for Webforms (Content Editor -&amp;gt; System -&amp;gt; Modules -&amp;gt; Web Forms For Marketers -&amp;gt; Settings -&amp;gt; Actions -&amp;gt; Save Actions) I just had to do a quick right-click -&amp;gt; Insert -&amp;gt; Save Action. Voila, I have my new save action. But now, I need to give it functionality!&lt;/p&gt;
&lt;p&gt;For this part, I had to go over to my project in Visual Studio. Web Forms is set up that you can define the C# class you want tied to the new save action, but it does have to abide by a few rules. First, it needs to extend the Sitecore.Form.Core.Client.Data.Submit.ISubmit class. This library is added to your project files when you install the WFFM module.&amp;nbsp; Before you can start accessing it, don't forget to reference the .dll file in your project.&amp;nbsp; Since I'm extending this class, I need to override the Execute function for that class, which is where I'm going to stick the code to run on the submit of our web form.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;using Sitecore.Form.Core.Client.Data.Submit;&lt;br /&gt;public class GoogleAdWordsScript : ISubmit&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public virtual void Submit(ID formid, AdaptedResultList fields)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once I had this class defined and compiled, I needed to tie it to my Save Action in Sitecore. Back at my custom save action in Sitecore, there are two fields that need to be filled: Assembly and Class. The assembly is the namespace in which I defined my new C# class in, and the class is the name of the class.&amp;nbsp; You'll need the namespace and the classname in the Class field for this to work correctly.&amp;nbsp; Once I had these filled out, I can add this action to my web form submit actions, but it's not going to do anything for me just yet.&amp;nbsp; But now that I have the building blocks laid for my new functionality, I can actually write the functionality!&lt;/p&gt;
&lt;p&gt;So the problem I had was finding a way to add a javascript snippet onto our page only &lt;em&gt;after&lt;/em&gt; the web form is submitted.&amp;nbsp; The snippet I'm using is the Google AdWords conversion tracking code, which is an in-line snippet and a code reference that needs to be on the page for Google to do its magic.&amp;nbsp; In order to add javascript to my ASP.NET object, I used the RegisterStartupScript function on the ClientScriptManager of our page. I know what you're thinking, 'Woah, woah, what are these? Too fast.' Okay, baby steps.&amp;nbsp; First, let's get my page object so I can add javascript to it.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Page page = HttpContext.Current.Handler as Page;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This line will get the currently running page as an object so that we can add code to it. Now we can add a javascript function with the ClientScriptManager so that it renders with the rest of my page. We're going to add our javascript using the ClientScript property on the ClientScriptManager. In case you &lt;a href="http://adwords.google.com/support/aw/bin/answer.py?hl=en&amp;amp;answer=115794" target="_new"&gt;don't know&lt;/a&gt;, Google AdWords conversion tracking is slightly complicated. There are three moving parts: the conversion arguments for your account, the script reference to their javascript code, and the &amp;lt;noscript&amp;gt; section for browsers with scripting disabled. I needed all three.&lt;/p&gt;
&lt;p&gt;I did the arguments first. This is straight javascript, so I can use the RegisterStartupScript function.&amp;nbsp; This function will add all of the code into my page, but I need a couple arguments first:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;string googleAdWordsArguments = @"var google_conversion_id = 1234567890;&lt;br /&gt;var google_conversion_language = ""en_US"";&lt;br /&gt;var google_conversion_format = ""1"";&lt;br /&gt;var google_conversion_color = ""666666"";&lt;br /&gt;var google_conversion_label = ""Purchase"";";&lt;br /&gt;page.ClientScript.RegisterStartupScript(this.GetType(), "myID", googleAdWordsArguments, true);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The first parameter, this.GetType(), gives the Type of the current instance. This includes information about the page object, including the namespace, name, assembly, etc. So, if you have any questions about the Assembly and Class fields on the Sitecore object, this is where you find your answer.&lt;/p&gt;
&lt;p&gt;The next parameter, "myID", is the key of the script I'm adding. This doesn't show on the front-end, but the ScriptManager uses it for organizing multiple scripts. Each script you add needs to have a unique key, otherwise the ScriptManager sees them as duplicates.&lt;/p&gt;
&lt;p&gt;The next argument is the javascript code I want run, sans script tags (that means without "&amp;lt;script type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;"). The script tags are handled by the next argument - true wraps the code in script tags, false does not.&lt;/p&gt;
&lt;p&gt;Next, I need to reference Google's javascript code so that the conversion will actually work. If this was a normal page, this is simply:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;script language="JavaScript" src="http://www.googleadservices.com/pagead/conversion.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;But again, I have to insert this line only after the web form is submitted using C#. Simple - RegisterClientScriptInclude will do that for me.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;page.ClientScript.RegisterClientScriptInclude("myID2", "http://www.googleadservices.com/pagead/conversion.js");&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The two arguments are the key for the client script (which needs to be unique like we talked about earlier!), and the source of the script I want referenced. That's done.&lt;/p&gt;
&lt;p&gt;Finally, I need to add the noscript section for browsers blocking javascript. This is where is gets a little complicated. Since the noscript section is technically HTML, I need to use javascript to insert the HTML into the ASP.NET page. I have an HTML image object pointing to Google's conversion code page, which is inside a set of &amp;lt;noscript&amp;gt; tags.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;noscript&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img height=1 width=1 border=0 src="http://www.googleadservices.com/pagead/conversion/1234567890/?value=1&amp;amp;label=Purchase&amp;amp;script=0"&amp;gt;&lt;br /&gt;&amp;lt;/noscript&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I'll make the &amp;lt;noscript&amp;gt; tags first.&amp;nbsp; I used javascript's document.createElement() function for that:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;string insertScript = "";&lt;br /&gt;insertScript += "var noscript = document.createElement('noscript');";&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Next, I need to add the img object to the &amp;lt;noscript&amp;gt; section.&amp;nbsp; For that, I simply set the innerHTML of the noscript object I just made:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;insertScript += "noscript.innerHTML = ""&amp;lt;img src='http://www.googleadservices.com/pagead/conversion/1234567890/?value=1&amp;amp;label=Purchase&amp;amp;script=0' border='0' width='1' height='1' /&amp;gt;"";&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now that I have the &amp;lt;noscript&amp;gt; section all ready for entry, I need to add it to the end of the body tag.&amp;nbsp; Since I won't know what my body's ID will be, I'll use the document.getElementsByTagName function instead and append the noscript object:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;insertScript += "document.getElementsByTagName('body')[0].appendChild(noscript);";&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Keep in mind that the last three lines I wrote are javascript, and needs to run after the web form is completed.&amp;nbsp; One last call to the ClientScriptManager:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;page.ClientScript.RegisterStartupScript(this.GetType(), "myID3", insertScript, true);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now, once a user finishes the web form, the javascript will use the conversion arguments or the &amp;lt;noscript&amp;gt; section to capture the conversion.&amp;nbsp; Testing is easy:&amp;nbsp; look at the page source before and after the web form has been submitted.&amp;nbsp; The lines we want will be on the page only after the form has been submitted.&amp;nbsp; Like I told you, this took a bunch of moving parts, but it solves a problem you may run into in your coding travels.&amp;nbsp; You can use the C# class file to define a custom Save Action, and you can use the RegisterStartupScript function to add javascript to an ASP.NET object.&amp;nbsp; Both of these tools will come in quite handy, and for this task they worked together seamlessly.&amp;nbsp; &lt;a href="/Uploads/FileManager/GoogleAdWordsScript.zip"&gt;Here&lt;/a&gt; is a download of my C# class for additional support in your quest.&amp;nbsp; Happy coding!&lt;noscript&gt;&lt;/noscript&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rkdhrMadkTQ:InExDuoMXqE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rkdhrMadkTQ:InExDuoMXqE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rkdhrMadkTQ:InExDuoMXqE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=rkdhrMadkTQ:InExDuoMXqE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rkdhrMadkTQ:InExDuoMXqE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rkdhrMadkTQ:InExDuoMXqE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=rkdhrMadkTQ:InExDuoMXqE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/rkdhrMadkTQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 15 Aug 2011 12:00:00 EST</pubDate><guid isPermaLink="false">424</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1058&amp;title=Web_Forms_and_Javascript_Oh_My</feedburner:origLink></item><item><title>7 Steps to A Great Creative Brief</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/H09yiD6Lm2E/blog.aspx</link><description>&lt;style&gt;
&amp;amp;lt;!--
 /* Font Definitions */
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
	{mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
	{mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
	{mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
@list l0
	{mso-list-id:1792091494;
	mso-list-type:hybrid;
	mso-list-template-ids:-1414913226 1058150074 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-weight:normal;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--&amp;amp;gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;style type="text/css"&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Cambria}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Cambria; min-height: 12.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 36.0px; font: 11.0px Cambria}
p.p4 {margin: 0.0px 0.0px 0.0px 36.0px; font: 11.0px Cambria; min-height: 12.0px}
p.p5 {margin: 0.0px 0.0px 0.0px 18.0px; font: 11.0px Cambria; min-height: 12.0px}
li.li1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Cambria}
span.Apple-tab-span {white-space:pre}
ol.ol1 {list-style-type: decimal}
&lt;/style&gt;
&lt;/p&gt;
&lt;p class="p1"&gt;
&lt;style&gt;
&amp;amp;lt;!--
 /* Font Definitions */
@font-face
	{font-family:Arial;
	panose-1:2 11 6 4 2 2 2 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
	{mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
	{mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
	{mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
@list l0
	{mso-list-id:1792091494;
	mso-list-type:hybrid;
	mso-list-template-ids:-1414913226 1058150074 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-weight:normal;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--&amp;amp;gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;style&gt;

&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;/p&gt;
&lt;p&gt;While it seems and looks simple, a creative brief involves a good amount of research about the brand and its target audience. We like to use a one-page brief that covers every important aspect of the brand, its audience and its message. This format, adopted by the great Leo Burnett, gives the creative team everything it needs to succeed in the most compact and concise arrangement. Here are the seven steps that we use to complete our briefs:&lt;img style="float: right;" src="/Uploads/Gallery/magglass.gif" border="0" width="280" height="219" /&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Identifying what we want the advertising to do&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; First, identify what the brand needs to accomplish with its advertisements. &lt;/li&gt;
&lt;li&gt; Identifying what the advertising needs to do for your client allows you to adopt a focused strategy and effectively target the rest of your brief.&lt;/li&gt;
&lt;li&gt; EXAMPLE: Does the brand want to introduce a new product as the most exciting product in the industry? Does it want to let the consumer know that it is the absolute best at a certain niche service? These are things you need to figure out.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Identifying the target audience and key consumer insights&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;Identifying the target consumer is something that should always be done before launching a campaign.&lt;/li&gt;
&lt;li&gt;The company should always know who they are targeting so they can tailor their advertisements effectively.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;It is important that you do some heavy research into your client's target audience and develop some key insights about that audience. This way, you can use these insights to grab the attention of these consumers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Describing the brand&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Know the brand's personality and essence. &lt;/li&gt;
&lt;li&gt; If the brand doesn't already have an established personality, you can create one using some research and consumer insights; this way, your brand has a personality that its target audience can identify with. &lt;/li&gt;
&lt;li&gt; EXAMPLE - Old Spice: Ad agency Wieden and Kennedy was able to target Generation Y by developing a humorous and confident personality through Old Spice's new spokesperson Isaiah Mustafa. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Identifying the single most important thing the consumer should take out of the advertising&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; This single thing is effectively your &amp;lsquo;big idea' or &amp;lsquo;big concept'. It is the one thing that will unify your entire campaign. It could be used as a tagline or just an overall thought/idea that each tool in your campaign will convey. &lt;/li&gt;
&lt;li&gt; This is the most important part of your campaign, because it is the idea that will sell the product or service.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Make it believable&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A big idea is great, but in order for the client to be truly excited and accepting of your proposal, you must show how you can make that idea believable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;Think about how you can make the consumer affirm the idea that you are trying to put in his/her head. In what way will your advertisement convey this concept effectively?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Identify anything else that can help the creative team&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Let the creative team know if there is anything else that could help them create exciting and effective ads. &lt;/li&gt;
&lt;li&gt; This last thought is usually some sort of insight that the creative team can use to further persuade the target audience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;7.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Executional Mandatories&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Develop some definitive mandatory steps that must be taken to ensure that the ads are displayed as effectively as possible. &lt;/li&gt;
&lt;li&gt; EXAMPLE - Geico: every one of their commercials has the logo and website clearly displayed at the end of it; this was no doubt included as a mandatory on the creative brief for that campaign.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Developing a creative brief for a campaign is one of the best account planning practices an agency can use. It helps to solidify the exact plan that must be taken to ensure the launch of a successful campaign. We here at DS work to create unified campaigns that communicate ideas and insights developed from our planning. It's the key to getting that believable message out to the right audience at the right time, giving our clients the edge against the competition.&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=H09yiD6Lm2E:UDkeXrzj2_o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=H09yiD6Lm2E:UDkeXrzj2_o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=H09yiD6Lm2E:UDkeXrzj2_o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=H09yiD6Lm2E:UDkeXrzj2_o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=H09yiD6Lm2E:UDkeXrzj2_o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=H09yiD6Lm2E:UDkeXrzj2_o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=H09yiD6Lm2E:UDkeXrzj2_o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/H09yiD6Lm2E" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 03 Aug 2011 12:00:00 EST</pubDate><guid isPermaLink="false">423</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1053&amp;title=7_Steps_to_A_Great_Creative_Brief</feedburner:origLink></item><item><title>New Site for Client With Big Reach</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/HYo3xVGsXtM/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HYo3xVGsXtM:T4lJWGNZV78:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HYo3xVGsXtM:T4lJWGNZV78:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HYo3xVGsXtM:T4lJWGNZV78:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=HYo3xVGsXtM:T4lJWGNZV78:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HYo3xVGsXtM:T4lJWGNZV78:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HYo3xVGsXtM:T4lJWGNZV78:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=HYo3xVGsXtM:T4lJWGNZV78:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/HYo3xVGsXtM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 22 Jul 2011 12:00:00 EST</pubDate><guid isPermaLink="false">420</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1047&amp;title=New_Site_for_Client_With_Big_Reach</feedburner:origLink></item><item><title>Tablet-Optimized Websites</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/b4kGdN7X3i4/blog.aspx</link><description>&lt;p&gt;I now realize that tablets introduce a new concept into the web development world: tablet optimized web sites.  Mobile websites are self-explanatory; with such a small screen and so much content on a traditional website, designers have been making style and business-related decisions on which items should stay and which should go.  However, tablets introduce the portability of a phone with the screen real estate of a laptop.  The only missing puzzle piece is the keyboard/mouse combination.  Without those, clicking and typing does require more precision and practice to get where you want to go.&lt;/p&gt;
&lt;p&gt;That said, what would make surfing on my Xoom easier?  Well, for one, bigger buttons and text fields similar to mobile sites would be a great start.  Best practices and standards are taking care of this issue on the mobile platform.  Ask anyone that knows me, and they'll tell you my dislike for the Apple family of products.  However, they do have a good thing going with their strict guidelines for apps.  In fact, they have an entire library dedicated to their application standards and practices.  Everything is covered, from icon styles and size to textbox margins to do's-and-don'ts of application development.  Now, where is the support from my fellow Android brethren?&lt;/p&gt;
&lt;p&gt;The other issue presented with tablets is the device identity the browser can read.  Basically, websites can figure out what kind of device you're visiting from.  For example, I made up a quick javascript page to get the device/browser identity and visited with a couple different devices.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;var uagent = navigator.userAgent.toLowerCase();&lt;br /&gt;alert(uagent);&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regular desktop: mozilla/5.0 (windows; u; windows nt 6.1; en-us; rv:1.9.2.16) gecko/20110319 firefox/3.6.16&lt;/li&gt;
&lt;li&gt;Droid 2: mozilla/5.0(linux; u; android 2.2; en-us; droid2 build/vzw) applewebkit/533.1 (khtml, like gecko) version/4.0 mobile safari/533.1&lt;/li&gt;
&lt;li&gt;Xoom: mozilla/5.0 (linux; u; android 3.0.1; en-us; xoom build/hwi69) applewebkit/534.13 (khtml, like gecko) version/4.0 safari/534.13&lt;/li&gt;
&lt;li&gt;iPhone 3Gs:  mozilla/5.0 (iphone; u; cpu iphone os 4_3_1 like mac os x; en-us) applewebkit/533.17.9 (khtml, like gecko) version 5.0.2 mobile/8g4 safari/6533.18.5&lt;/li&gt;
&lt;li&gt;iPad: mozilla/5.0 (ipad; u; cpu os 4_3 like mac os x; en-us) applewebkit/533.17.9 (khtml, like gecko) version/5.0.2 mobile/8f190 safari/6533.18.5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can see from this list it's pretty clear what device I was using.  But how will the device name help me unless I keep a list of all 300+ devices and their identites and figure out what form of mobility it is?  That's just silly.  Here's a better idea:  get the screen size and figure out if the website should be phone-optimized or tablet-optimized based on the width/height ratio.  I went about this by using two methods: screen.width (that's the possible size of the screen) and window.innerWidth (that's the size of the browser the phone is using).  I also took into account that the phone/tablet can be held vertically (how a phone is normally surfed) and horizontally (like how a tablet is normally surfed).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;alert("orientation: " + window.orientation);&lt;br /&gt;var screenWidth = screen.width; &lt;br /&gt;var screenHeight = screen.height; &lt;br /&gt; alert("width: " + screenWidth + ", height: " + screenHeight); &lt;br /&gt;var screenWidth = window.innerWidth; &lt;br /&gt;var screenHeight = window.innerHeight; &lt;br /&gt;alert("width: " + screenWidth + ", height: " + screenHeight); &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If you look over the numbers, you'll start to see a trend:&amp;nbsp; there is no trend.&amp;nbsp; The results from window.innerWidth are the most concerning.&amp;nbsp; For example, window.innerWidth found the width of my Droid to be over 1000 pixels.&amp;nbsp; Or, the iPhone's height was over 1200 pixels.&amp;nbsp; That's way too many pixels for such a small screen.&amp;nbsp; The good news is that screen.width was pretty consistent, with exception to that pesky Droid 2.&amp;nbsp; When the device is portrait or landscape, the width and height are the same number, but flip-flopped.&lt;/p&gt;
&lt;p&gt;So, analysis time.&amp;nbsp; With consistent width and height from screen.width, I say we use that.&amp;nbsp; From there, we can figure out how big buttons and text fields and other items need to be.&amp;nbsp; That's pretty much what Apple is doing, since they have complete control over the hardware as well as the software.&amp;nbsp; But when we're supporting so many devices with different displays, we'll need to figure out what the best size is for the device at hand.&lt;/p&gt;
&lt;p&gt;Also, since we can see that tablets have more pixels to work with, we can put more content on the page compared to a traditional mobile site.&amp;nbsp; But we don't want to leave the pages looking cluttered and over-loaded.&amp;nbsp; A good tablet-optimized site would have less content per page, but more links to other content pages.&amp;nbsp; A great example is the YouTube app for my Xoom.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/xoom.jpg" border="0" width="175" height="175" /&gt;&lt;/p&gt;
&lt;p&gt;There is plenty of content on this page, but it's all links to videos on other pages.&amp;nbsp; This way, the user isn't locked on one page and has to move through the site to find what they want, and can do it pretty easily.&amp;nbsp; Now your site has more exposure and a happier user.&amp;nbsp; Win-win.&lt;/p&gt;
&lt;p&gt;Finally, we need to remember that our users can now rotate their monitors vertically or horizontally.&amp;nbsp; This will present problems if the website is hard-coded with styling numbers as opposed to percentages.&amp;nbsp; You can see evidence of this in my screen.width numbers, how the width and height flip-flop when the device is turned.&amp;nbsp; A good example of a tablet-optimized website is MTV.com.&amp;nbsp; They have implemented a lot of photos and links for content, big text for the links, and used percentages for their sizes, which you can see if you turn your device sideways and zoom out.&amp;nbsp; Kudos to Music Television.&lt;/p&gt;
&lt;p&gt;So, as users yourselves, what would you like to see on mobile sites in the future?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=b4kGdN7X3i4:IYEboCfnp1o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=b4kGdN7X3i4:IYEboCfnp1o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=b4kGdN7X3i4:IYEboCfnp1o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=b4kGdN7X3i4:IYEboCfnp1o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=b4kGdN7X3i4:IYEboCfnp1o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=b4kGdN7X3i4:IYEboCfnp1o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=b4kGdN7X3i4:IYEboCfnp1o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/b4kGdN7X3i4" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 27 May 2011 12:00:00 EST</pubDate><guid isPermaLink="false">410</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1030&amp;title=TabletOptimized_Websites</feedburner:origLink></item><item><title>Task Notification with Google Talk via XMPP</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/_Vltee1oGd4/blog.aspx</link><description>&lt;p&gt;In searching for a library to build our notification application on, we weren't too picky, but some libraries claim to be libraries (in the sense that I think about libraries as methods to manipulate data), but they also have UIs built in. We aren't running a UI for this. It simply makes calls to the database, and sends messages to the user, as a Windows Service. However, we (and I'm speaking about everyone, not just Delphic Sage and not just developers) are very lucky that the &lt;a href="http://www.ag-software.de/agsxmpp-sdk/" target="_blank"&gt;agsXMPP SDK&lt;/a&gt; exists. It has UI elements though, but it is generally one of the best structured libraries I've seen. And it works beautifully.  Alex is the maintainer and is always answering posts on the forums and helping everyone get their XMPP applications up and running. To the point where I've seen new questions posted directly to Alex, instead of something along the lines of "Can someone help me?".&lt;/p&gt;
&lt;p&gt;Let's take a look at how to implement a basic task notification system using the agsXMPP library.&lt;/p&gt;
&lt;p&gt;So after I removed all the old code for the AIM client, and deleted that cursed dll, I had a pretty empty file.&lt;/p&gt;
&lt;code&gt; public Worker() { &lt;br /&gt; this.Running = true;&lt;br /&gt; this.Connected = false;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void Run() {&lt;br /&gt; try {&lt;br /&gt; while (this.Running){&lt;br /&gt; try {&lt;br /&gt; if (this.Connected) {&lt;br /&gt; TaskIMNotificationList notProcessed = //load unsent messages from the database&lt;br /&gt; foreach (TaskIMNotification imNotification in notProcessed) {&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; catch {...}&lt;br /&gt; &lt;br /&gt; Thread.Sleep(60000);  // check for new messages every minute&lt;br /&gt; }&lt;br /&gt; } catch { ... }&lt;br /&gt; }&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;I then started adding the XMPP stuff.  Generally there are a bunch of events that you want to listen for, pretty much in order to show status messages to your user in a UI environment, but in our case, we're just dumping status messages to the event log.&lt;/p&gt;
&lt;p&gt;Here's the basic initialization/configuration of our XMPP client. I did these in the constructor of my Worker class:&lt;/p&gt;
&lt;code&gt; client = new XmppClientConnection();&lt;br /&gt; client.SocketConnectionType = agsXMPP.net.SocketConnectionType.Direct;&lt;br /&gt; client.ConnectServer = "talk.google.com";&lt;br /&gt; client.Port = 5222;&lt;br /&gt; client.UseStartTLS = true;&lt;br /&gt; client.AutoResolveConnectServer = false;&lt;br /&gt; client.Show = ShowType.chat;&lt;br /&gt; client.Server = "delphicsage.com";&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;And we are listening for the following events:&lt;/p&gt;
&lt;code&gt; client.OnClose += new ObjectHandler(client_OnClose);&lt;br /&gt; client.OnLogin += new ObjectHandler(client_OnLogin);&lt;br /&gt; client.OnXmppConnectionStateChanged += new XmppConnectionStateHandler(client_OnXmppConnectionStateChanged);&lt;br /&gt; client.OnError += new ErrorHandler(client_OnError);&lt;br /&gt; client.OnAuthError += new XmppElementHandler(client_OnAuthError);&lt;br /&gt; client.OnBinded += new ObjectHandler(client_OnBinded);&lt;br /&gt; client.OnRosterItem += new XmppClientConnection.RosterHandler(client_OnRosterItem);&lt;br /&gt; client.OnPresence += new agsXMPP.protocol.client.PresenceHandler(client_OnPresence);&lt;br /&gt; client.OnMessage += new agsXMPP.protocol.client.MessageHandler(client_OnMessage);&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;We have a list of online users, and a list of contacts:&lt;/p&gt;
&lt;code&gt; this.online = new List&amp;lt;string&amp;gt;();&lt;br /&gt; this.contacts = new List&amp;lt;string&amp;gt;();&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;And finally I call SignOn().  We'll take a look at some of these event handlers.  First OnLogin:&lt;/p&gt;
&lt;code&gt; void client_OnLogin(object sender) { &lt;br /&gt; this.Connected = true;&lt;br /&gt; System.Diagnostics.EventLog.WriteEntry("TaskTron9000", "Logged in successfully.", EventLogEntryType.SuccessAudit);&lt;br /&gt; } &lt;/code&gt;
&lt;p&gt;There are a few connection state changes between the SignOn call and when the OnLogin event is raised. We only set our Connected property to true when we receive the login event, and our application can start sending messages. Some other connection states are "Connecting", "Connected", "Authorizing", "Authorized". Luckily the agsXMPP library has the Login event so we don't have to try to figure out what all of the other connection states mean!&lt;/p&gt;
&lt;p&gt;An important event is the OnPresence event. This gets raised when a user goes online or offline, when they "Subscribe" to you (meaning, add a contact), as well as for other presense queries / changes, like unsubscribe, become available, go away.  Here's how we handle it:&lt;/p&gt;
&lt;code&gt; void client_OnPresence(object sender, agsXMPP.protocol.client.Presence pres) {&lt;br /&gt; if (pres.Type == PresenceType.subscribe)&lt;br /&gt; client.PresenceManager.ApproveSubscriptionRequest(pres.From);&lt;br /&gt; &lt;br /&gt; Jid jid = pres.From;&lt;br /&gt; string username = jid.User + "@" + jid.Server;&lt;br /&gt; if (pres.Type == PresenceType.available)&lt;br /&gt; {&lt;br /&gt; if (!this.online.Contains(username))&lt;br /&gt; this.online.Add(username);&lt;br /&gt; }&lt;br /&gt; else if (pres.Type == PresenceType.unavailable || pres.Type == PresenceType.unsubscribe)&lt;br /&gt; this.online.Remove(username);&lt;br /&gt; }&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;The main idea here is, when we receive a subscription request, we approve it.  When someone is available, we add them to our list of online users of who we can send messages to, and conversely remove them in other instances.  The Presence event is raised many times. There's also a "probe" presence, so someone's XMPP client would be checking if our user is online, and we would likely be sending a Presence object back.&lt;/p&gt;
&lt;p&gt;OnRosterItem is called at the beginning for each contact you have in your contacts list. Also, when a new user is subscribed to.  We will add to our contacts list:&lt;/p&gt;
&lt;code&gt; void client_OnRosterItem(object sender, RosterItem item) {&lt;br /&gt; Jid jid = item.Jid;&lt;br /&gt; string username = jid.User + "@" + jid.Server;&lt;br /&gt; if (!this.contacts.Contains(username))&lt;br /&gt; this.contacts.Add(username);&lt;br /&gt; }&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;Our last event is just having a little fun. Since the original name of our program is the TaskTron9000, and we generally branded it as HAL9000 from 2001: A Space Odyssey, our OnMessage event will just send a user a HAL9000 quote. It's just hard coded...&lt;/p&gt;
&lt;code&gt; void client_OnMessage(object sender, agsXMPP.protocol.client.Message msg) {&lt;br /&gt; agsXMPP.protocol.client.Message message = new agsXMPP.protocol.client.Message(msg.From);&lt;br /&gt; if (msg.Type == MessageType.chat &amp;amp;&amp;amp; !string.IsNullOrEmpty(msg.Body)){&lt;br /&gt; message.Body = "This mission is too important for me to allow you to jeopardize it.";&lt;br /&gt; client.Send(message);&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;Finally, we can take a look at the main loop of the program, sending messages.&lt;/p&gt;
&lt;code&gt; while (this.Running) {&lt;br /&gt; try {&lt;br /&gt; if (this.Connected) {&lt;br /&gt; TaskIMNotificationList notProcessed = // load unsent messages&lt;br /&gt; foreach (TaskIMNotification imNotification in notProcessed) {&lt;br /&gt; Jid jid = new Jid(imNotification.SendToUsername);&lt;br /&gt; if (!this.online.Contains(imNotification.SendToUsername)) {&lt;br /&gt; if (!this.contacts.Contains(imNotification.SendToUsername)) {&lt;br /&gt; client.PresenceManager.Subscribe(jid);&lt;br /&gt; client.RosterManager.AddRosterItem(jid);&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; else {&lt;br /&gt; agsXMPP.protocol.client.Message message = new agsXMPP.protocol.client.Message(jid);&lt;br /&gt; message.Body = imNotification.Message;&lt;br /&gt; client.Send(message);&lt;br /&gt; &lt;br /&gt; imNotification.SentIndicator = true;&lt;br /&gt; imNotification.Save();&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; } catch { ... }&lt;br /&gt; &lt;br /&gt; Thread.Sleep(60000);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; SignOff();&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;You can find a Visual Studio 2008 Solution with all of the code used in our project &lt;a href="/Uploads/FileManager/BlogPostCode/TaskTron9000.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_Vltee1oGd4:6kJIh4CMs3E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_Vltee1oGd4:6kJIh4CMs3E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_Vltee1oGd4:6kJIh4CMs3E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_Vltee1oGd4:6kJIh4CMs3E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_Vltee1oGd4:6kJIh4CMs3E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_Vltee1oGd4:6kJIh4CMs3E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_Vltee1oGd4:6kJIh4CMs3E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/_Vltee1oGd4" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 25 May 2011 12:00:00 EST</pubDate><guid isPermaLink="false">415</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1017&amp;title=Task_Notification_with_Google_Talk_via_XMPP</feedburner:origLink></item><item><title>Accume Partners Web Site Launched</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/wL5PVJXJbfU/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wL5PVJXJbfU:EBC16CYXITI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wL5PVJXJbfU:EBC16CYXITI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wL5PVJXJbfU:EBC16CYXITI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=wL5PVJXJbfU:EBC16CYXITI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wL5PVJXJbfU:EBC16CYXITI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wL5PVJXJbfU:EBC16CYXITI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=wL5PVJXJbfU:EBC16CYXITI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/wL5PVJXJbfU" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 10 May 2011 12:00:00 EST</pubDate><guid isPermaLink="false">416</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1023&amp;title=Accume_Partners_Web_Site_Launched</feedburner:origLink></item><item><title>Jersey Arts Mobile Site Launched </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/3gXfqMDwQx8/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=3gXfqMDwQx8:7g6fnEzwLU4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=3gXfqMDwQx8:7g6fnEzwLU4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=3gXfqMDwQx8:7g6fnEzwLU4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=3gXfqMDwQx8:7g6fnEzwLU4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=3gXfqMDwQx8:7g6fnEzwLU4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=3gXfqMDwQx8:7g6fnEzwLU4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=3gXfqMDwQx8:7g6fnEzwLU4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/3gXfqMDwQx8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Sat, 07 May 2011 12:00:00 EST</pubDate><guid isPermaLink="false">414</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1009&amp;title=Jersey_Arts_Mobile_Site_Launched_</feedburner:origLink></item><item><title>Microsoft Certified Partner</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Gl3zB4WIy1M/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Gl3zB4WIy1M:O9KC9-i8ZD8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Gl3zB4WIy1M:O9KC9-i8ZD8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Gl3zB4WIy1M:O9KC9-i8ZD8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Gl3zB4WIy1M:O9KC9-i8ZD8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Gl3zB4WIy1M:O9KC9-i8ZD8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Gl3zB4WIy1M:O9KC9-i8ZD8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Gl3zB4WIy1M:O9KC9-i8ZD8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Gl3zB4WIy1M" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 20 Apr 2011 12:00:00 EST</pubDate><guid isPermaLink="false">411</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=1002&amp;title=Microsoft_Certified_Partner</feedburner:origLink></item><item><title>Social Power</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/_8P2wqhTZNE/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_8P2wqhTZNE:hhayUl6GE9Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_8P2wqhTZNE:hhayUl6GE9Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_8P2wqhTZNE:hhayUl6GE9Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_8P2wqhTZNE:hhayUl6GE9Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_8P2wqhTZNE:hhayUl6GE9Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_8P2wqhTZNE:hhayUl6GE9Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_8P2wqhTZNE:hhayUl6GE9Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/_8P2wqhTZNE" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 18 Mar 2011 12:00:00 EST</pubDate><guid isPermaLink="false">409</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=996&amp;title=Social_Power</feedburner:origLink></item><item><title>Experiments in Javascript: Multicast Delegate</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/cvca49IRWO0/blog.aspx</link><description>&lt;p&gt;First and foremost, &lt;a href="http://ckon.wordpress.com/2008/07/25/stop-using-windowonload-in-javascript/" target="_blank"&gt;don't use window.onload&lt;/a&gt; :)  attachEvent and addEventListener are there for this exact purpose. Let's take a trip back 5 years and pretend this was relevant for window.onload.  However it is still relevant for Javascript in general.&lt;/p&gt;
&lt;p&gt;The problem of just outright setting window.onload to your function, is that it will overwrite whatever window.onload was set to previously. This can lead to malfunctioning pages that are very difficult to debug. That was the theory of all of the posts about "doing window onload the right way".&lt;/p&gt;
&lt;code&gt; function foo(){ alert("foo"); }&lt;br /&gt; &lt;br /&gt; window.onload = foo;&lt;br /&gt;&lt;br /&gt; // somewhere else on the page, maybe 1000 lines below&lt;br /&gt; &lt;br /&gt; function bar() { alert("bar"); }&lt;br /&gt; &lt;br /&gt; window.onload = bar; &lt;/code&gt;
&lt;p&gt;You can deduce that "foo" will not be alerted. This would be bad if our foo actually did something, like start a video of a cat doing silly things. Devastating. How can they both work?!&lt;/p&gt;
&lt;p&gt;The first accepted method is to build a function inline that combines two functions:&lt;/p&gt;
&lt;code&gt; window.onload = function(){ foo(); bar(); } &lt;/code&gt;
&lt;p&gt;This will work if that's the only time window.onload is set. You can't call window.onload explicitly inside of window.onload unless you like infinite loops. However, storing the referenced function and updating window.onload to the new function is fair. With that knowledge, let's continue our investigation.&lt;/p&gt;
&lt;p&gt;The current method out there to get the previous window.onload and the additional function to call correctly looks like this:&lt;/p&gt;
&lt;code&gt; function doublecast(fn1, fn2){&lt;br /&gt; return function(){&lt;br /&gt; if (typeof(fn1) == "function")&lt;br /&gt; fn1();&lt;br /&gt; if (typeof(fn2) == "function")&lt;br /&gt; fn2();&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;You would use this method to add to the window's onload functionality like so:&lt;/p&gt;
&lt;code&gt;window.onload = doublecast(window.onload, foo);&lt;/code&gt;
&lt;p&gt;If you needed to add more functions, you would do so in successive calls to "doublecast":&lt;/p&gt;
&lt;code&gt; window.onload = doublecast(window.onload, foo);&lt;br /&gt; window.onload = doublecast(window.onload, bar); &lt;/code&gt;
&lt;p&gt;or through the ugly method of&lt;/p&gt;
&lt;code&gt; window.onload = doublecast(window.onload, function(){ foo(); bar(); });&lt;/code&gt;
&lt;p&gt;jQuery has made this acceptable, but it's still ugly!  And the successive calls are not line-number friendly.  Obviously, after reading John Resig's &lt;a href="http://ejohn.org/apps/learn/" target="_blank"&gt;"Learning Advanced JavaScript"&lt;/a&gt;, I feel I am ready to build a more appropriate and clean function.&lt;/p&gt;
&lt;code&gt; function multicast(){&lt;br /&gt; if (arguments == null || arguments.length == 0) return function(){ };&lt;br /&gt; &lt;br /&gt; var fns = [], j = 0;&lt;br /&gt; for (var i = 0; i &amp;lt; arguments.length; i++){&lt;br /&gt; if (typeof(arguments[i]) == "function")&lt;br /&gt; fns[j++] = arguments[i];&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; return function(){&lt;br /&gt; for (var i = 0; i &amp;lt; fns.length; i++)&lt;br /&gt; fns[i]();&lt;br /&gt; };&lt;br /&gt; }&lt;br /&gt; &lt;/code&gt;
&lt;p&gt;Our new code looks like this:&lt;/p&gt;
&lt;code&gt; window.onload = multicast(window.onload, foo, bar); &lt;/code&gt;
&lt;p&gt;window.onload could have been set previously, and we don't care. We know we've defined two functions in the current module (say, an ASP.NET control or some other type of view) and it will work, so long as no one after us sets window.onload = myAwesomeLoadFunction; which would overwrite it... I guess no solution is completely future proof.&lt;/p&gt;
&lt;p&gt;Discuss in the comments, please.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cvca49IRWO0:ZuHyMDL4KS4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cvca49IRWO0:ZuHyMDL4KS4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cvca49IRWO0:ZuHyMDL4KS4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=cvca49IRWO0:ZuHyMDL4KS4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cvca49IRWO0:ZuHyMDL4KS4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cvca49IRWO0:ZuHyMDL4KS4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=cvca49IRWO0:ZuHyMDL4KS4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/cvca49IRWO0" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 03 Mar 2011 12:00:00 EST</pubDate><guid isPermaLink="false">386</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=980&amp;title=Experiments_in_Javascript_Multicast_Delegate</feedburner:origLink></item><item><title>Sitecore Online Marketing Suite</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/lHSIy7LvWok/blog.aspx</link><description>&lt;h2&gt;Easy to Use&lt;/h2&gt;
Sitecore Online Marketing Suite will analyze customer behavior and adjust web pages in real time to provide a more refined user experience, according to visitor browsing patterns. All this is done by utilizing GeoIP and global cookies so that managers can understand what prompted the visitor to access their website. Actually, this is just one of the many pioneering tools available in this software.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Marketing Automation&lt;/h2&gt;
Despite the complex mechanism of Sitecore technology, the software is very simple to operate. The automated technology allows marketing managers to adjust hundreds of parameters through a simple click on a user friendly interface. Perhaps, it is the simplicity of generating multiple complex commands that makes Sitecore stand out from its competitors. For example, after getting feedback from Sitecore, managers can click the check boxes to make the needed adjustments. Consequently, this real time site personalization offers immediate feedback on hundreds of visitors so that managers can activate other marketing channels to streamline their campaigns. The artificial intelligence of Sitecore then takes over to provide website visitors the content and features that they are looking for.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Lead Generation&lt;/h2&gt;
Sitecore Online Marketing Suite is developed to take commands and automate the process for marketing managers. Accordingly, this software is powerful enough to extract qualified leads from online visits and distribute those leads to the sales department. The ingenuity of Sitecore goes as far as to locate the Country, State, City and even the company name. The information is then disseminated to the authorized individual who can actually create multiple marketing segments based on complex user profile. All this can easily be done by a few mouse clicks.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Marketing Strategies&lt;/h2&gt;
Sitecore Online Marketing Suite understands website visitors and offers a simple solution for marketing managers to implement various strategies. The implementation strategies supported by Sitecore include usability enhancements, multivariate testing, A/B testing, messaging refinements, landing page optimization, segmentation targeting and campaign management.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Sitecore goes beyond the ordinary marketing tools that are prevalent in the market. Whether it is CPM, CPC, Goolge Adwords, newsletter campaign or online ads, Sitecore ensures that marketing managers can get the required ROI by using only the most effective marketing strategies. This software will understand and help marketing managers to identify problems, measure performance, analyze campaigns and test the results. The real time intelligence makes sure that organizations can quickly discard useless marketing measures and instead focus on the most productive ones. In fact, the superior technology and immense reporting capabilities makes Sitecore Online Marketing Suite one of the most powerful marketing solution for medium and large corporations.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=lHSIy7LvWok:wUcS70P6akw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=lHSIy7LvWok:wUcS70P6akw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=lHSIy7LvWok:wUcS70P6akw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=lHSIy7LvWok:wUcS70P6akw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=lHSIy7LvWok:wUcS70P6akw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=lHSIy7LvWok:wUcS70P6akw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=lHSIy7LvWok:wUcS70P6akw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/lHSIy7LvWok" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 01 Mar 2011 12:00:00 EST</pubDate><guid isPermaLink="false">388</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=992&amp;title=Sitecore_Online_Marketing_Suite</feedburner:origLink></item><item><title>List of Official Google Blogs</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/794Zw6Y59vg/blog.aspx</link><description>&lt;p&gt;1. &lt;a href="http://googleblog.blogspot.com"&gt;The Official Google Blog&lt;/a&gt;. This blog is the primary source for information about the latest Google developments as well as insights into the Google philosophy.&lt;/p&gt;
&lt;p&gt;2. &lt;a href="http://adsense.blogspot.com"&gt;Inside AdSense&lt;/a&gt;. Devoted to all things related to this popular revenue-sharing program, this blog has a lot of information for both new and experienced AdSense users.&lt;/p&gt;
&lt;p&gt;3. &lt;a href="http://adwords.blogspot.com"&gt;Inside AdWords&lt;/a&gt;. This one is a helpful resource for web advertisers with questions about using this Google feature.&lt;/p&gt;
&lt;p&gt;4. &lt;a href="http://googleaffiliatenetwork-blog.blogspot.com"&gt;Google Affiliate Network&lt;/a&gt;. With this blog, affiliate advertisers can find the latest news, statistics, and helpful hints to increase their earnings.&lt;/p&gt;
&lt;p&gt;5. &lt;a href="http://buzz.blogger.com"&gt;Blogger Buzz&lt;/a&gt;. This blog relates the latest features and updates from Blogger.&lt;/p&gt;
&lt;p&gt;6. &lt;a href="http://googlecheckout.blogspot.com"&gt;Official Google Checkout&lt;/a&gt;. E-commerce sellers who wish to allow payment through Google Checkout can get started with how-to information from this blog.&lt;/p&gt;
&lt;p&gt;7. &lt;a href="http://googlecustomsearch.blogspot.com"&gt;Google Custom Search&lt;/a&gt;. Google users who want to narrow and focus their web searches can find out the latest techniques here.&lt;/p&gt;
&lt;p&gt;8. &lt;a href="http://googledocs.blogspot.com"&gt;Docs Blog&lt;/a&gt;. This blog describes the latest improvements to Google Docs.&lt;/p&gt;
&lt;p&gt;9. &lt;a href="http://googlefinanceblog.blogspot.com"&gt;Google Finance Blog&lt;/a&gt;. Users keeping track of their saving and investing can find tutorials here for the various Google Finance tools.&lt;/p&gt;
&lt;p&gt;10. &lt;a href="http://gmailblog.blogspot.com"&gt;Official Gmail Blog&lt;/a&gt;. Gmail account holders can found out about the latest apps and mobile email integration from this blog.&lt;/p&gt;
&lt;p&gt;11. &lt;a href="http://googlemac.blogspot.com"&gt;Official Google Mac Blog&lt;/a&gt;. Mac users who are also Google fans can use this blog to keep up with the latest Apple-friendly Google applications.&lt;/p&gt;
&lt;p&gt;12. &lt;a href="http://googlemobile.blogspot.com"&gt;Official Google Mobile Blog&lt;/a&gt;. Just as with so many other web sites, Google has gone mobile and has the latest compatibility updates on this blog.&lt;/p&gt;
&lt;p&gt;13. &lt;a href="http://en.blog.orkut.com"&gt;Orkut Blog&lt;/a&gt;. Orkut is a Google-based social-networking option, with regular improvements and news here.&lt;/p&gt;
&lt;p&gt;14. &lt;a href="http://googlereader.blogspot.com"&gt;Reader Blog&lt;/a&gt;. For those users who enjoy previewing their books on Google Reader, this blog is recommended to check on the latest offerings for reading.&lt;/p&gt;
&lt;p&gt;15. &lt;a href="http://googlephotos.blogspot.com"&gt;Google Photos Blog&lt;/a&gt;. Picasa is a relatively new photo-sharing section of Google, and users can also connect through this blog.&lt;/p&gt;
&lt;p&gt;16. &lt;a href="http://googleonlinesecurity.blogspot.com"&gt;Security Blog&lt;/a&gt;. Google is known for making Internet security a priority, with development news frequently added to the security blog.&lt;/p&gt;
&lt;p&gt;17. &lt;a href="http://googleforstudents.blogspot.com"&gt;Google Student Blog&lt;/a&gt;. Current and future college students have a good resource for Google-sponsored scholarships and other related news on this blog.&lt;/p&gt;
&lt;p&gt;18. &lt;a href="http://sketchupdate.blogspot.com"&gt;SketchUp Blog&lt;/a&gt;. Experienced and aspiring digital animators can reference this blog to see the work of others and find out about SketchUp contests.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=794Zw6Y59vg:aapsaTy37fg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=794Zw6Y59vg:aapsaTy37fg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=794Zw6Y59vg:aapsaTy37fg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=794Zw6Y59vg:aapsaTy37fg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=794Zw6Y59vg:aapsaTy37fg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=794Zw6Y59vg:aapsaTy37fg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=794Zw6Y59vg:aapsaTy37fg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/794Zw6Y59vg" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 10 Feb 2011 12:00:00 EST</pubDate><guid isPermaLink="false">387</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=986&amp;title=List_of_Official_Google_Blogs</feedburner:origLink></item><item><title>Trinity and the New York Football Giants</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/rjZrMQwozsY/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rjZrMQwozsY:g5YEcEQvUEA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rjZrMQwozsY:g5YEcEQvUEA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rjZrMQwozsY:g5YEcEQvUEA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=rjZrMQwozsY:g5YEcEQvUEA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rjZrMQwozsY:g5YEcEQvUEA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rjZrMQwozsY:g5YEcEQvUEA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=rjZrMQwozsY:g5YEcEQvUEA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/rjZrMQwozsY" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 14 Dec 2010 12:00:00 EST</pubDate><guid isPermaLink="false">383</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=975&amp;title=Trinity_and_the_New_York_Football_Giants</feedburner:origLink></item><item><title>SEO Basics | SEO 101 Presentation</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/aZGhb9TG8gg/blog.aspx</link><description>&lt;a href="http://www.scribd.com/doc/44394388/SEO-Basics" title="View SEO Basics on Scribd"&gt;SEO Basics&lt;/a&gt; 
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="500" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="id" value="doc_20052" /&gt;
&lt;param name="name" value="doc_20052" /&gt;
&lt;param name="wmode" value="opaque" /&gt;
&lt;param name="bgcolor" value="#ffffff" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;
&lt;param name="FlashVars" value="document_id=44394388&amp;amp;access_key=key-1335ypl94hz72ycgsezg&amp;amp;page=1&amp;amp;viewMode=list" /&gt;
&lt;param name="src" value="http://d1.scribdassets.com/ScribdViewer.swf" /&gt;&lt;embed id="doc_20052" type="application/x-shockwave-flash" width="450" height="500" src="http://d1.scribdassets.com/ScribdViewer.swf" flashvars="document_id=44394388&amp;amp;access_key=key-1335ypl94hz72ycgsezg&amp;amp;page=1&amp;amp;viewMode=list" allowscriptaccess="always" allowfullscreen="true" bgcolor="#ffffff" wmode="opaque" name="doc_20052"&gt;&lt;/embed&gt;
&lt;/object&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=aZGhb9TG8gg:12OSAlh7JgY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=aZGhb9TG8gg:12OSAlh7JgY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=aZGhb9TG8gg:12OSAlh7JgY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=aZGhb9TG8gg:12OSAlh7JgY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=aZGhb9TG8gg:12OSAlh7JgY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=aZGhb9TG8gg:12OSAlh7JgY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=aZGhb9TG8gg:12OSAlh7JgY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/aZGhb9TG8gg" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 30 Nov 2010 12:00:00 EST</pubDate><guid isPermaLink="false">382</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=970&amp;title=SEO_Basics__SEO_101_Presentation</feedburner:origLink></item><item><title>Liberty Elevator Launch</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/2ej2q3qsLyE/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2ej2q3qsLyE:6rq9xCfucC8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2ej2q3qsLyE:6rq9xCfucC8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2ej2q3qsLyE:6rq9xCfucC8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=2ej2q3qsLyE:6rq9xCfucC8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2ej2q3qsLyE:6rq9xCfucC8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2ej2q3qsLyE:6rq9xCfucC8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=2ej2q3qsLyE:6rq9xCfucC8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/2ej2q3qsLyE" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 19 Nov 2010 12:00:00 EST</pubDate><guid isPermaLink="false">385</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=979&amp;title=Liberty_Elevator_Launch</feedburner:origLink></item><item><title>Recognition as Top Software Developer</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/XDEBUJvWMjU/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XDEBUJvWMjU:q1VzUQlDf-s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XDEBUJvWMjU:q1VzUQlDf-s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XDEBUJvWMjU:q1VzUQlDf-s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=XDEBUJvWMjU:q1VzUQlDf-s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XDEBUJvWMjU:q1VzUQlDf-s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XDEBUJvWMjU:q1VzUQlDf-s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=XDEBUJvWMjU:q1VzUQlDf-s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/XDEBUJvWMjU" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 21 Oct 2010 12:00:00 EST</pubDate><guid isPermaLink="false">381</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=963&amp;title=Recognition_as_Top_Software_Developer</feedburner:origLink></item><item><title>SQL Script to Search an Entire Database for a Value</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/PdY4llS-Wew/blog.aspx</link><description>&lt;p&gt;*I decided to apply a filter by column type on which columns to search, in case the types of some columns throw casting errors on your search value or has other general problems with the WHERE clause.&lt;br /&gt;If you want to see the full list of types in your database, you can run the following query:&lt;/p&gt;
&lt;p&gt;SELECT DISTINCT DATA_TYPE&lt;br /&gt;FROM Information_Schema.Columns&lt;/p&gt;
&lt;p&gt;&lt;a href="/Uploads/FileManager/BlogPostCode/WhereIsString.zip"&gt;Download the Source Code&lt;/a&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;-- Variables to modify&lt;br /&gt;-- @ColumnTypes:	Comma-separated value of database types.  The script only performs the search clause on &lt;br /&gt;-- @SearchString:	The value to search for.&lt;br /&gt;-- @SearchClause:	The template of the &lt;br /&gt;&lt;br /&gt;DECLARE	@SearchString	NVARCHAR(MAX),&lt;br /&gt;		@SearchClause	NVARCHAR(MAX),&lt;br /&gt;		@ColumnTypes	NVARCHAR(MAX)&lt;br /&gt;&lt;br /&gt;--SET	@ColumnTypes = 'INT'&lt;br /&gt;--SET	@ColumnTypes = 'xml,char,nchar,ntext,nvarchar,text,uniqueidentifier,varchar'&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;-- Modify @ColumnTypes to set the type of columns to search on&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;SET	@ColumnTypes = 'xml,char,nchar,ntext,nvarchar,text,uniqueidentifier,varchar'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;-- Modify @SearchString to set the value you're searching on&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;SET	@SearchString = 'Waldorf'&lt;br /&gt;&lt;br /&gt;IF(LEN(ISNULL(@SearchClause, '')) = 0)&lt;br /&gt;BEGIN&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;-- Modify @SearchClause change your search criteria (i.e. = v.s. LIKE, if you want % in your LIKE search clauses.  CAST/etc &lt;br /&gt;-- may also go here.  [&amp;lt;&amp;gt;] is replaced by the name of the column&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;	SET		@SearchClause = '[&amp;lt;&amp;gt;] LIKE ''%' + @SearchString + '%'''&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;--	Table used for storing the (table, column)-pairs that satisfy our @SearchClause&lt;br /&gt;DECLARE	@SearchResultRow	TABLE&lt;br /&gt;(&lt;br /&gt;	TableName		NVARCHAR(512),&lt;br /&gt;	ColumnName		NVARCHAR(512),&lt;br /&gt;	OrdinalPosition	INT&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;DECLARE @Column	TABLE&lt;br /&gt;(&lt;br /&gt;	TableName				NVARCHAR(512),&lt;br /&gt;	ColumnName				NVARCHAR(512),&lt;br /&gt;	DataType				NVARCHAR(512),&lt;br /&gt;	CharacterMaximumLength	INT,&lt;br /&gt;	OrdinalPosition			INT&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;-- Get list of all columns in the database that are of the column type we're searching on.&lt;br /&gt;INSERT INTO @Column&lt;br /&gt;(&lt;br /&gt;	TableName,&lt;br /&gt;	ColumnName,&lt;br /&gt;	DataType,&lt;br /&gt;	CharacterMaximumLength,&lt;br /&gt;	OrdinalPosition&lt;br /&gt;)&lt;br /&gt;SELECT	TABLE_NAME,&lt;br /&gt;		COLUMN_NAME,&lt;br /&gt;		DATA_TYPE,&lt;br /&gt;		CHARACTER_MAXIMUM_LENGTH,&lt;br /&gt;		ORDINAL_POSITION&lt;br /&gt;FROM	Information_Schema.Columns&lt;br /&gt;WHERE	',' + @ColumnTypes + ',' LIKE '%,' + DATA_TYPE + ',%'&lt;br /&gt;&lt;br /&gt;--	Used to keep track of every (table, column)-pair.&lt;br /&gt;DECLARE @TableColumn		TABLE&lt;br /&gt;(&lt;br /&gt;	TableName				NVARCHAR(512),&lt;br /&gt;	ColumnName				NVARCHAR(512),&lt;br /&gt;	DataType				NVARCHAR(512),&lt;br /&gt;	CharacterMaximumLength	INT,&lt;br /&gt;	OrdinalPosition			INT&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;DECLARE	@CurrentTableName	NVARCHAR(512)&lt;br /&gt;SET	@CurrentTableName =&lt;br /&gt;	(&lt;br /&gt;		SELECT	TOP 1 TableName&lt;br /&gt;		FROM	@Column&lt;br /&gt;		ORDER BY TableName&lt;br /&gt;	)&lt;br /&gt;&lt;br /&gt;--	The template of the query that is executed on each row from @Column&lt;br /&gt;--	to see if it satisfies our @SearchClause.&lt;br /&gt;DECLARE	@SqlTestTemplate	NVARCHAR(MAX)&lt;br /&gt;SET		@SqlTestTemplate =&lt;br /&gt;'SELECT	[TableName],&lt;br /&gt;		[ColumnName],&lt;br /&gt;		[OrdinalPosition]&lt;br /&gt;FROM&lt;br /&gt;	(&lt;br /&gt;		SELECT	''[&amp;lt;&amp;gt;]'' AS TableName,&lt;br /&gt;				''[&amp;lt;&amp;gt;]'' AS ColumnName,&lt;br /&gt;				[&amp;lt;&amp;gt;] AS OrdinalPosition&lt;br /&gt;	) AS	TableColumn&lt;br /&gt;WHERE	EXISTS&lt;br /&gt;		(&lt;br /&gt;			SELECT	[&amp;lt;&amp;gt;]&lt;br /&gt;			FROM	[&amp;lt;&amp;gt;]&lt;br /&gt;			WHERE	' + @SearchClause + '&lt;br /&gt;		)'&lt;br /&gt;&lt;br /&gt;-- Cycle through and find each (table, column)-pair satisfying our @SearchClause&lt;br /&gt;WHILE(@CurrentTableName IS NOT NULL) -- Cycle through each table.&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;	DELETE&lt;br /&gt;	FROM	@TableColumn&lt;br /&gt;&lt;br /&gt;	-- Insert every (table, column)-pair into TableColumn for the current Table &lt;br /&gt;	INSERT INTO&lt;br /&gt;	@TableColumn&lt;br /&gt;	(&lt;br /&gt;		TableName,&lt;br /&gt;		ColumnName,&lt;br /&gt;		DataType,&lt;br /&gt;		CharacterMaximumLength,&lt;br /&gt;		OrdinalPosition&lt;br /&gt;	)&lt;br /&gt;	SELECT	TableName,&lt;br /&gt;			ColumnName,&lt;br /&gt;			DataType,&lt;br /&gt;			CharacterMaximumLength,&lt;br /&gt;			OrdinalPosition&lt;br /&gt;	FROM	@Column AS [Column]&lt;br /&gt;	WHERE	[Column].TableName = @CurrentTableName&lt;br /&gt;&lt;br /&gt;--	SELECT *&lt;br /&gt;--	FROM	@TableColumn&lt;br /&gt;--	ORDER BY OrdinalPosition&lt;br /&gt;	&lt;br /&gt;	DECLARE	@CurrentColumnName	NVARCHAR(512),&lt;br /&gt;			@OrdinalPosition	INT&lt;br /&gt;	SET	@CurrentColumnName =&lt;br /&gt;		(&lt;br /&gt;			SELECT	TOP 1 ColumnName&lt;br /&gt;			FROM	@TableColumn AS [TableColumn]&lt;br /&gt;			ORDER BY OrdinalPosition&lt;br /&gt;		)&lt;br /&gt;	SET	@OrdinalPosition = &lt;br /&gt;		(&lt;br /&gt;			SELECT	TOP 1 OrdinalPosition&lt;br /&gt;			FROM	@TableColumn AS [TableColumn]&lt;br /&gt;			WHERE	[TableColumn].[ColumnName] = @CurrentColumnName&lt;br /&gt;		)&lt;br /&gt;&lt;br /&gt;	WHILE(@CurrentColumnName IS NOT NULL) -- Cycle through each column for the current table.&lt;br /&gt;	BEGIN&lt;br /&gt;&lt;br /&gt;		--SELECT	@CurrentTableName, @CurrentColumnName&lt;br /&gt;&lt;br /&gt;		--	Build our sql test for a column from the @SqlTestTemplate variable.&lt;br /&gt;		DECLARE @ColumnTestSql NVARCHAR(MAX)&lt;br /&gt;		SET		@ColumnTestSql = REPLACE(@SqlTestTemplate, '[&amp;lt;&amp;gt;]', '[' + @CurrentTableName + ']')&lt;br /&gt;		SET		@ColumnTestSql = REPLACE(@ColumnTestSql, '[&amp;lt;&amp;gt;]', '[' + @CurrentColumnName + ']')&lt;br /&gt;		SET		@ColumnTestSql = REPLACE(@ColumnTestSql, '[&amp;lt;&amp;gt;]', CAST(@OrdinalPosition AS NVARCHAR(512)))&lt;br /&gt;&lt;br /&gt;--		PRINT	@ColumnTestSql&lt;br /&gt;&lt;br /&gt;		-- Insert record of (table, column)-pair satisfying our criteria.&lt;br /&gt;		INSERT INTO	@SearchResultRow&lt;br /&gt;		(&lt;br /&gt;			TableName,&lt;br /&gt;			ColumnName,&lt;br /&gt;			OrdinalPosition&lt;br /&gt;		)&lt;br /&gt;		EXEC sp_executesql @ColumnTestSql&lt;br /&gt;		&lt;br /&gt;&lt;br /&gt;		-- Get the next column we're going to search on and get its ordinal position (for looping&lt;br /&gt;		-- through the columns in a table).&lt;br /&gt;		&lt;br /&gt;		SET	@CurrentColumnName =&lt;br /&gt;			(&lt;br /&gt;				SELECT	TOP 1 ColumnName&lt;br /&gt;				FROM	@TableColumn AS [TableColumn]&lt;br /&gt;				WHERE	OrdinalPosition &amp;gt; @OrdinalPosition&lt;br /&gt;				ORDER BY OrdinalPosition&lt;br /&gt;			)&lt;br /&gt;&lt;br /&gt;		SET	@OrdinalPosition = &lt;br /&gt;			(&lt;br /&gt;				SELECT	TOP 1 OrdinalPosition&lt;br /&gt;				FROM	@TableColumn AS [TableColumn]&lt;br /&gt;				WHERE	[TableColumn].[ColumnName] = @CurrentColumnName&lt;br /&gt;			)&lt;br /&gt;&lt;br /&gt;	END -- WHILE(@CurrentColumnName IS NOT NULL)&lt;br /&gt;	&lt;br /&gt;&lt;br /&gt;	--	Get next table we going to test (for looping through our list of tables)&lt;br /&gt;	SET	@CurrentTableName =&lt;br /&gt;		(&lt;br /&gt;			SELECT	TOP 1 TableName&lt;br /&gt;			FROM	@Column AS [Column]&lt;br /&gt;			WHERE	[Column].TableName &amp;gt; @CurrentTableName&lt;br /&gt;			ORDER BY TableName&lt;br /&gt;		)	&lt;br /&gt;END -- WHILE(@CurrentTableName IS NOT NULL)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;------------------- The list of all tables that have a value that --------------&lt;br /&gt;------------------- satisfies our SearchClause in at least one row -------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;SELECT		DISTINCT TableName&lt;br /&gt;FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;ORDER BY	TableName&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;-------- The list of all (table, colum)-pairs that have a value that -----------&lt;br /&gt;------------------- satisfies our SearchClause in at least one row -------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;SELECT		TableName, ColumnName&lt;br /&gt;FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;ORDER BY	TableName, OrdinalPosition, ColumnName&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------- Building Queries -----------------------------------&lt;br /&gt;-- This code is for building the select/sql queries for getting the matching ---&lt;br /&gt;-- rows from each of the tables that we know has a matching value somewhere ---- &lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE	@SearchResultQuery	TABLE&lt;br /&gt;(&lt;br /&gt;	TableName		NVARCHAR(512),&lt;br /&gt;	ColumnList		NVARCHAR(MAX),&lt;br /&gt;	WhereClause		NVARCHAR(MAX)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;DECLARE	@QueryTableName	NVARCHAR(512)&lt;br /&gt;DECLARE	@QueryColumn	NVARCHAR(512)&lt;br /&gt;&lt;br /&gt;SET	@QueryTableName =&lt;br /&gt;	(&lt;br /&gt;		SELECT	TOP 1 TableName&lt;br /&gt;		FROM	(&lt;br /&gt;					SELECT		DISTINCT TableName&lt;br /&gt;					FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;				) AS MatchingTable&lt;br /&gt;		ORDER BY TableName&lt;br /&gt;	)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;WHILE(@QueryTableName IS NOT NULL)&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;	DECLARE	@QueryColumnName			NVARCHAR(512),&lt;br /&gt;			@QueryColumnOrdinalPosition	INT&lt;br /&gt;&lt;br /&gt;	SET	@QueryColumnName =	(&lt;br /&gt;								SELECT		TOP 1 ColumnName&lt;br /&gt;								FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;								WHERE		TableName = @QueryTableName&lt;br /&gt;								ORDER BY	TableName, OrdinalPosition, ColumnName&lt;br /&gt;							)&lt;br /&gt;	SET	@QueryColumnOrdinalPosition =	(&lt;br /&gt;											SELECT		TOP 1 OrdinalPosition&lt;br /&gt;											FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;											WHERE		TableName = @QueryTableName&lt;br /&gt;														AND ColumnName = @QueryColumnName&lt;br /&gt;										)&lt;br /&gt;	&lt;br /&gt;	INSERT INTO @SearchResultQuery&lt;br /&gt;	(&lt;br /&gt;		TableName,&lt;br /&gt;		ColumnList,&lt;br /&gt;		WhereClause&lt;br /&gt;	)&lt;br /&gt;	VALUES&lt;br /&gt;	(&lt;br /&gt;		@QueryTableName,&lt;br /&gt;		'',&lt;br /&gt;		''&lt;br /&gt;	)&lt;br /&gt;&lt;br /&gt;	WHILE(@QueryColumnName IS NOT NULL)&lt;br /&gt;	BEGIN&lt;br /&gt;	&lt;br /&gt;		DECLARE @ColumnList				NVARCHAR(MAX),&lt;br /&gt;				@WhereClause			NVARCHAR(MAX),&lt;br /&gt;				@AdditionalWhereClause	NVARCHAR(MAX)&lt;br /&gt;				&lt;br /&gt;		SELECT	@ColumnList = ColumnList,&lt;br /&gt;				@WhereClause = WhereClause&lt;br /&gt;		FROM	@SearchResultQuery AS SearchResultQuery&lt;br /&gt;		WHERE	SearchResultQuery.TableName = @QueryTableName&lt;br /&gt;		&lt;br /&gt;		SET		@AdditionalWhereClause = REPLACE(@SearchClause, '[&amp;lt;&amp;gt;]', @QueryColumnName)&lt;br /&gt;		&lt;br /&gt;		IF(LEN(@WhereClause) &amp;lt;&amp;gt; 0)&lt;br /&gt;		BEGIN&lt;br /&gt;			SET	@WhereClause = @WhereClause + ' OR '&lt;br /&gt;		END&lt;br /&gt;&lt;br /&gt;		SET	@WhereClause = @WhereClause + @AdditionalWhereClause&lt;br /&gt;		&lt;br /&gt;		IF(LEN(@ColumnList) &amp;lt;&amp;gt; 0)&lt;br /&gt;		BEGIN&lt;br /&gt;			SET	@ColumnList = @ColumnList + ',&lt;br /&gt;'&lt;br /&gt;		END&lt;br /&gt;&lt;br /&gt;		SET	@ColumnList = @ColumnList + @QueryColumnName&lt;br /&gt;&lt;br /&gt;		UPDATE	@SearchResultQuery&lt;br /&gt;		SET		ColumnList = @ColumnList,&lt;br /&gt;				WhereClause = @WhereClause&lt;br /&gt;		WHERE	TableName = @QueryTableName&lt;br /&gt;		&lt;br /&gt;		--  PRINT	@QueryTableName + ': ' + @QueryColumnName&lt;br /&gt;&lt;br /&gt;		SET	@QueryColumnName =	(&lt;br /&gt;									SELECT		TOP 1 ColumnName&lt;br /&gt;									FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;									WHERE		SearchResultRow.TableName = @QueryTableName&lt;br /&gt;												AND SearchResultRow.OrdinalPosition &amp;gt; @QueryColumnOrdinalPosition&lt;br /&gt;									ORDER BY	TableName, OrdinalPosition, ColumnName&lt;br /&gt;								)&lt;br /&gt;&lt;br /&gt;		SET	@QueryColumnOrdinalPosition =	(&lt;br /&gt;												SELECT		TOP 1 OrdinalPosition&lt;br /&gt;												FROM		@SearchResultRow AS SearchResultRow&lt;br /&gt;												WHERE		TableName = @QueryTableName&lt;br /&gt;															AND ColumnName = @QueryColumnName&lt;br /&gt;											)		&lt;br /&gt;	END&lt;br /&gt;	------------------------ WHILE(@QueryColumnName IS NOT NULL)&lt;br /&gt;	&lt;br /&gt;	SET	@QueryTableName =&lt;br /&gt;		(&lt;br /&gt;			SELECT	TOP 1 TableName&lt;br /&gt;			FROM	(&lt;br /&gt;						SELECT	DISTINCT TableName&lt;br /&gt;						FROM	@SearchResultRow AS SearchResultRow&lt;br /&gt;						WHERE	SearchResultRow.TableName &amp;gt; @QueryTableName&lt;br /&gt;					) AS MatchingTable&lt;br /&gt;			ORDER BY TableName&lt;br /&gt;		)&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;------------------------- WHILE(@QueryTableName IS NOT NULL)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;-------- Spit out the sql queries we were just building ----------&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;SELECT	'&lt;br /&gt;SELECT	' + ColumnList + ', *&lt;br /&gt;FROM	' + TableName + '&lt;br /&gt;WHERE	' + WhereClause&lt;br /&gt;FROM	@SearchResultQuery AS SearchResultQuery&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PRINT	'Done'&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PdY4llS-Wew:Q4I35pJcgTY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PdY4llS-Wew:Q4I35pJcgTY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PdY4llS-Wew:Q4I35pJcgTY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PdY4llS-Wew:Q4I35pJcgTY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PdY4llS-Wew:Q4I35pJcgTY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PdY4llS-Wew:Q4I35pJcgTY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PdY4llS-Wew:Q4I35pJcgTY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/PdY4llS-Wew" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 05 Oct 2010 12:00:00 EST</pubDate><guid isPermaLink="false">378</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=960&amp;title=SQL_Script_to_Search_an_Entire_Database_for_a_Value</feedburner:origLink></item><item><title>Schuylkill Gone Wild</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/R-b_bzgftsk/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=R-b_bzgftsk:ayDzcl4f0Rs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=R-b_bzgftsk:ayDzcl4f0Rs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=R-b_bzgftsk:ayDzcl4f0Rs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=R-b_bzgftsk:ayDzcl4f0Rs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=R-b_bzgftsk:ayDzcl4f0Rs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=R-b_bzgftsk:ayDzcl4f0Rs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=R-b_bzgftsk:ayDzcl4f0Rs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/R-b_bzgftsk" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 01 Oct 2010 12:00:00 EST</pubDate><guid isPermaLink="false">380</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=954&amp;title=Schuylkill_Gone_Wild</feedburner:origLink></item><item><title>Latest White Paper: Interactive Strategy Beyond 2010</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/h-iWJYS5jgk/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h-iWJYS5jgk:u7VKU50PZwk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h-iWJYS5jgk:u7VKU50PZwk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h-iWJYS5jgk:u7VKU50PZwk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=h-iWJYS5jgk:u7VKU50PZwk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h-iWJYS5jgk:u7VKU50PZwk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h-iWJYS5jgk:u7VKU50PZwk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=h-iWJYS5jgk:u7VKU50PZwk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/h-iWJYS5jgk" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 13 Sep 2010 12:00:00 EST</pubDate><guid isPermaLink="false">377</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=933&amp;title=Latest_White_Paper_Interactive_Strategy_Beyond_2010</feedburner:origLink></item><item><title>Links for 2010-08-26 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/GSi5NKRYZhQ/delphicsage</link><pubDate>Fri, 27 Aug 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2010-08-26</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://analytics.blogspot.com/2010/08/new-tools-to-debug-your-tracking-code.html"&gt;Google Analytics Blog: New Tools to Debug Your Tracking Code&lt;/a&gt;&lt;br/&gt;
Crome extension to debug GA code&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/GSi5NKRYZhQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2010-08-26</feedburner:origLink></item><item><title>Dear NO INTEREST</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/HdP8D9eucN8/blog.aspx</link><description>&lt;p&gt;"Dear NO INTEREST GREGG," the email shouted, "We are an Online marketing firm, specialized in Customer database with e-mails, business and consumer lists, e-mail marketing and data appending solutions..."&lt;/p&gt;
&lt;p&gt;Really? So, from what I can gather, not only did I get a badly written and poorly targeted email. Not only was I getting an unsolicited spam email. But, I was also clearly segmented as "No interest" as well. Ouch. Not a very successful email campaign. However, all that got me thinking about CRM and using emails to actually nurture a lead, turn a lead, or heck, even staying in front of paying customers.  While I have had some duds as campaigns, and even made some mistakes, this campaign is fundamentally flawed. Why? Horrible strategy used in their list segmentation planning.&lt;br /&gt;I won't touch the argument concerning unsolicited vs. solicited emails, and I won't hash out technical flaws with the mail I received, but I did think there were three takeaways to apply to all segment marketing:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Takeaway #1&amp;nbsp;&lt;/strong&gt;Manage your time. Contacting engaged leads or customers makes more sense if you are trying to drive your bottom line. They will convert quicker.  Given limited time, budget, and usually resources, you should be driving revenue first.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Takeaway #2&amp;nbsp;&lt;/strong&gt;Be compelling. If you are already working the discard pile or scrap-heap list, then you better be compelling. Those people are in that category for a reason, and a broad-messaged generic email will not drive the needle. You need to be compelling, you need to be unique, and you need to offer value or no interest will quickly be "Report Spam."&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Takeaway #3&amp;nbsp;&lt;/strong&gt;Do it well or don't waste the money.  If you can't get the data feeds populated correctly, pull them correctly, be case sensitive and get stellar copy out, why are you doing it? Rather than spray and pray to a bad list, start working on content on your site to build a real list and get you actual prospects, not just names in a database.&lt;/p&gt;
&lt;p&gt;While it is pretty common to see people spend hours and hours of time in the minutiae of identifying and planning their segments, a couple minutes at the top-level looking at the strategy driving the segmentation in the first place makes a lot of sense. Yet, that top-level strategy is often skipped because it takes time.  Spend the time at the start of the project, not trying to explain why Dear No Interest emails didn't work.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HdP8D9eucN8:jn1UqBzC5vc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HdP8D9eucN8:jn1UqBzC5vc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HdP8D9eucN8:jn1UqBzC5vc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=HdP8D9eucN8:jn1UqBzC5vc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HdP8D9eucN8:jn1UqBzC5vc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HdP8D9eucN8:jn1UqBzC5vc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=HdP8D9eucN8:jn1UqBzC5vc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/HdP8D9eucN8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 23 Aug 2010 12:00:00 EST</pubDate><guid isPermaLink="false">375</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=925&amp;title=Dear_NO_INTEREST</feedburner:origLink></item><item><title>Trinity Solar Launch</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/h5Ii44FprJE/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h5Ii44FprJE:Tw55EtWFyIQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h5Ii44FprJE:Tw55EtWFyIQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h5Ii44FprJE:Tw55EtWFyIQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=h5Ii44FprJE:Tw55EtWFyIQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h5Ii44FprJE:Tw55EtWFyIQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h5Ii44FprJE:Tw55EtWFyIQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=h5Ii44FprJE:Tw55EtWFyIQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/h5Ii44FprJE" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 19 Aug 2010 12:00:00 EST</pubDate><guid isPermaLink="false">374</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=923&amp;title=Trinity_Solar_Launch</feedburner:origLink></item><item><title>Albion Engineering Launch</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Uj2sIIGzLsM/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uj2sIIGzLsM:57kr3J7xcoE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uj2sIIGzLsM:57kr3J7xcoE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uj2sIIGzLsM:57kr3J7xcoE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Uj2sIIGzLsM:57kr3J7xcoE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uj2sIIGzLsM:57kr3J7xcoE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Uj2sIIGzLsM:57kr3J7xcoE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Uj2sIIGzLsM:57kr3J7xcoE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Uj2sIIGzLsM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 10 Aug 2010 12:00:00 EST</pubDate><guid isPermaLink="false">368</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=914&amp;title=Albion_Engineering_Launch</feedburner:origLink></item><item><title>Two Communicator Awards for Web Design Excellence</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/qGnx1IwXDmM/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qGnx1IwXDmM:kVfd-7Zv2Nc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qGnx1IwXDmM:kVfd-7Zv2Nc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qGnx1IwXDmM:kVfd-7Zv2Nc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qGnx1IwXDmM:kVfd-7Zv2Nc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qGnx1IwXDmM:kVfd-7Zv2Nc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qGnx1IwXDmM:kVfd-7Zv2Nc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qGnx1IwXDmM:kVfd-7Zv2Nc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/qGnx1IwXDmM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 21 Jul 2010 12:00:00 EST</pubDate><guid isPermaLink="false">372</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=915&amp;title=Two_Communicator_Awards_for_Web_Design_Excellence</feedburner:origLink></item><item><title>Links for 2010-07-19 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/-SOCqXYvjQs/delphicsage</link><pubDate>Tue, 20 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2010-07-19</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.resizemybrowser.com/"&gt;resizeMyBrowser - Web application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/-SOCqXYvjQs" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2010-07-19</feedburner:origLink></item><item><title>We're A Google Favorite Place!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/iYyORNpDAAs/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=iYyORNpDAAs:UOChv7D6tkU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=iYyORNpDAAs:UOChv7D6tkU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=iYyORNpDAAs:UOChv7D6tkU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=iYyORNpDAAs:UOChv7D6tkU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=iYyORNpDAAs:UOChv7D6tkU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=iYyORNpDAAs:UOChv7D6tkU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=iYyORNpDAAs:UOChv7D6tkU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/iYyORNpDAAs" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 16 Jun 2010 12:00:00 EST</pubDate><guid isPermaLink="false">366</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=910&amp;title=Were_A_Google_Favorite_Place</feedburner:origLink></item><item><title>Why Blog?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/1rpXBi5-u4Q/blog.aspx</link><description>&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SEO&lt;/strong&gt; &amp;mdash; new content on a company site is fresh bait for those hungry little search engine spiders&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CULTURE &lt;/strong&gt;&amp;mdash; prospects, current clients and job candidates read blogs to get a sense of the company vibe that may not be evident in the About Us section of a web site&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CONVERSATION&lt;/strong&gt; &amp;mdash; blog entries can begin a conversation around a particular topic...controversial or not, serious or not...maybe even about a video game (ha! Mr. Maple Bacon...)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;STAYING IN TOUCH&lt;/strong&gt; &amp;mdash; most people don't have time to talk to every friend or family member to update them on their lives, so a blog is a quick and easy way to keep people in the know&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HELP PEOPLE&lt;/strong&gt; &amp;mdash; so many blogs written about (and by) those suffering from rare, and even common, illnesses give people a source for information, shared concerns, hope and much more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What are your reasons for writing or reading a blog? Do you have a blog? Does your company?&lt;/p&gt;
&lt;p&gt;And, yes, we've reached the point in this blog post where I feel it's completely appropriate to promote the services of Delphic Sage. So, if your company doesn't have a blog...or an online marketing strategy, you should call us. We're pretty dang good at this stuff.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=1rpXBi5-u4Q:Uba1NGsyAcw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=1rpXBi5-u4Q:Uba1NGsyAcw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=1rpXBi5-u4Q:Uba1NGsyAcw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=1rpXBi5-u4Q:Uba1NGsyAcw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=1rpXBi5-u4Q:Uba1NGsyAcw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=1rpXBi5-u4Q:Uba1NGsyAcw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=1rpXBi5-u4Q:Uba1NGsyAcw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/1rpXBi5-u4Q" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 27 May 2010 12:00:00 EST</pubDate><guid isPermaLink="false">363</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=907&amp;title=Why_Blog</feedburner:origLink></item><item><title>Create your personal profile on Google</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/xCAe_ywnb6k/blog.aspx</link><description>&lt;p&gt;Essentially, Google has created the option for you to help customize what displays in search results pages when someone "googles" your name...&lt;/p&gt;
&lt;p&gt;According to Google, "A Google profile is simply how you present yourself on Google products to other Google users. It allows you to control how you appear on Google and tell others a bit more about who you are. With a Google profile, you can easily share your web content on one central location. You can include, for example, links to your blog, online photos, and other profiles such as Facebook, LinkedIn, and more. You have control over what others see. Your profile won't display any private information unless you've explicitly added it." For more information about google profiles, &lt;a href="http://www.google.com/support/accounts/bin/answer.py?answer=97703&amp;amp;hl=en"&gt;click here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Take advantage of this handy tool - help provide information to Google so your search results are accurate and inclusive. A great tip for anyone looking for potential jobs! Visit &lt;a href="http://www.google.com/profiles"&gt;www.google.com/profiles&lt;/a&gt; to get started!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xCAe_ywnb6k:VY2qYQvIBtY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xCAe_ywnb6k:VY2qYQvIBtY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xCAe_ywnb6k:VY2qYQvIBtY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=xCAe_ywnb6k:VY2qYQvIBtY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xCAe_ywnb6k:VY2qYQvIBtY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xCAe_ywnb6k:VY2qYQvIBtY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=xCAe_ywnb6k:VY2qYQvIBtY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/xCAe_ywnb6k" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 18 May 2010 12:00:00 EST</pubDate><guid isPermaLink="false">362</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=901&amp;title=Create_your_personal_profile_on_Google</feedburner:origLink></item><item><title>Recognition as a Top Web Integrator</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ymjLwpihcwM/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ymjLwpihcwM:nhwZng059n8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ymjLwpihcwM:nhwZng059n8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ymjLwpihcwM:nhwZng059n8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ymjLwpihcwM:nhwZng059n8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ymjLwpihcwM:nhwZng059n8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ymjLwpihcwM:nhwZng059n8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ymjLwpihcwM:nhwZng059n8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ymjLwpihcwM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 07 May 2010 12:00:00 EST</pubDate><guid isPermaLink="false">361</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=898&amp;title=Recognition_as_a_Top_Web_Integrator</feedburner:origLink></item><item><title>Microsoft Certified Partner Yet Again</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/2EzQYJ5aw7M/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2EzQYJ5aw7M:0qrOF3TRxTc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2EzQYJ5aw7M:0qrOF3TRxTc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2EzQYJ5aw7M:0qrOF3TRxTc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=2EzQYJ5aw7M:0qrOF3TRxTc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2EzQYJ5aw7M:0qrOF3TRxTc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2EzQYJ5aw7M:0qrOF3TRxTc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=2EzQYJ5aw7M:0qrOF3TRxTc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/2EzQYJ5aw7M" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 28 Apr 2010 12:00:00 EST</pubDate><guid isPermaLink="false">360</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=894&amp;title=Microsoft_Certified_Partner_Yet_Again</feedburner:origLink></item><item><title> Direct Traffic is a Lie in Web Analytics</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/MRAnXX1GZHw/blog.aspx</link><description>&lt;p&gt;Anytime you do marketing engagements, you tend to need to tell people "stuff." This is usually in the form of a report.&lt;/p&gt;
&lt;p&gt;I really don't like reports, but I do like work plans or action items, or even executive summaries.  Reports are big, ugly beasts that are expected to look nice, be insightful, and justify your reason for existence-but come for free. In reality, you can spend 3 or 4 times more resources churning out a report than you will actually doing the work (charts, graphs, formatting). However, that isn't the bad part of a report (although it certainly isn't the good part of a report.) The bad part is when you have ambiguity front and center in a report.  A great example of that is measuring "Direct Traffic" in a marketing engagement.&lt;/p&gt;
&lt;p&gt;Direct Traffic could have come from a variety of sources, which certainly includes bookmarks and direct type in.  However, I have see tons of Web Trends reports with inflated direct traffic numbers due to redirects  or due to moving from a secure page to a non-secure page.  In all those cases, the common thread is that in a report they come up as "direct traffic." Unknown traffic, or unverified source, is probably a better description. Don't believe me? Think about some of the types of direct traffic that exist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Type In of URL&lt;/li&gt;
&lt;li&gt;Bookmark&lt;/li&gt;
&lt;li&gt;Click from a poorly done link in Flash&lt;/li&gt;
&lt;li&gt;Moving from secure to non-secure page&lt;/li&gt;
&lt;li&gt;Clicking on an email from an email program that isn't web based&lt;/li&gt;
&lt;li&gt;Redirect&lt;/li&gt;
&lt;li&gt;Proxy or firewall stripping out referral info&lt;/li&gt;
&lt;li&gt;Link from a document&lt;/li&gt;
&lt;li&gt;Customized browser that is suppressing information&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is a lot of Direct Traffic that isn't so direct.&amp;nbsp;So, what do you do about it? First, I suggest you rename the traffic to unknown or unverified or a similar approach to be transparent in reporting. Secondly, I suggest you start digging in on browser behavior with any redirects on your site, as that is certainly something that you want to understand. Thirdly, when in doubt, tag it.  Use a campaign code for your documents and for your emails as you control those.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=MRAnXX1GZHw:zImf8GcCMbY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=MRAnXX1GZHw:zImf8GcCMbY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=MRAnXX1GZHw:zImf8GcCMbY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=MRAnXX1GZHw:zImf8GcCMbY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=MRAnXX1GZHw:zImf8GcCMbY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=MRAnXX1GZHw:zImf8GcCMbY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=MRAnXX1GZHw:zImf8GcCMbY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/MRAnXX1GZHw" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 22 Apr 2010 12:00:00 EST</pubDate><guid isPermaLink="false">359</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=891&amp;title=_Direct_Traffic_is_a_Lie_in_Web_Analytics</feedburner:origLink></item><item><title>Launching 20 Web Sites at Once</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/h3Y5die_xag/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h3Y5die_xag:QlXTDmuwBuI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h3Y5die_xag:QlXTDmuwBuI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h3Y5die_xag:QlXTDmuwBuI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=h3Y5die_xag:QlXTDmuwBuI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h3Y5die_xag:QlXTDmuwBuI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=h3Y5die_xag:QlXTDmuwBuI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=h3Y5die_xag:QlXTDmuwBuI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/h3Y5die_xag" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 14 Apr 2010 12:00:00 EST</pubDate><guid isPermaLink="false">358</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=885&amp;title=Launching_20_Web_Sites_at_Once</feedburner:origLink></item><item><title>Sitecore Recognized Again By Gartner </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/uiG0_EhtNLM/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uiG0_EhtNLM:X_BCkW-I6YE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uiG0_EhtNLM:X_BCkW-I6YE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uiG0_EhtNLM:X_BCkW-I6YE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=uiG0_EhtNLM:X_BCkW-I6YE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uiG0_EhtNLM:X_BCkW-I6YE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uiG0_EhtNLM:X_BCkW-I6YE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=uiG0_EhtNLM:X_BCkW-I6YE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/uiG0_EhtNLM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 12 Apr 2010 12:00:00 EST</pubDate><guid isPermaLink="false">357</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=875&amp;title=Sitecore_Recognized_Again_By_Gartner_</feedburner:origLink></item><item><title>St. Patricks Day at Delphic Sage</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/cHIWGWRTo50/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cHIWGWRTo50:guzTQBJlWkQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cHIWGWRTo50:guzTQBJlWkQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cHIWGWRTo50:guzTQBJlWkQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=cHIWGWRTo50:guzTQBJlWkQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cHIWGWRTo50:guzTQBJlWkQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cHIWGWRTo50:guzTQBJlWkQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=cHIWGWRTo50:guzTQBJlWkQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/cHIWGWRTo50" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 17 Mar 2010 12:00:00 EST</pubDate><guid isPermaLink="false">355</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=870&amp;title=St_Patricks_Day_at_Delphic_Sage</feedburner:origLink></item><item><title>ASP.NET's 260 Length Path Segment Should Be Enough For Anyone (???)</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/LDEaor1iMEU/blog.aspx</link><description>&lt;p&gt;And the part that decodes the path info:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;	// required code
	private string GetPathInfoValue(string id, string pathInfo)
	{
		Regex regPathInfo = new Regex("/" + id + "=(.*?)/");
		Match match = regPathInfo.Match(pathInfo);
		string value = null;
		if (match.Success)
			value = match.Groups[1].Value;
		return value;
	}

	foreach (Control control in this.divWrapper.Controls)
	{
		string value = GetPathInfoValue(control.ID, Request.PathInfo);
		if (!string.IsNullOrEmpty(value))
		{
			SetControlValue(control, value);
		}
	}
&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;I have check boxes coming out of my ears!!&lt;/h2&gt;
&lt;p&gt;Handling most control styles should be pretty straightforward.  You have your text box, check box, radio button, text area (although, is that realistic in a filter?), select list.  One thing that isn't too obvious is the check box list.  Remember this is a control in .NET. The simple solution is to CSV the values!  Simple until your list of checkboxes gets too big!!  Wait, what?  Most web servers can handle a thousand characters in your path segments, &lt;strong&gt;including IIS&lt;/strong&gt;.  However, ASP.NET limits you to 260.  I know, it's a shame.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/qs_bad_request.jpg" border="0" width="800" height="86" /&gt;&lt;/p&gt;
&lt;p&gt;So how do we handle the Check Box List with, say, 100 items?  Some answers on forums you might receive is to "POST" rather than "GET".  You're an HTTP wizard, you know you're not "POST"ing anything, in REST speak.  You also know that you want to be able to pass this URL to &lt;a href="http://www.pdfmyurl.com" target="_blank"&gt;pdfmyurl.com&lt;/a&gt; and easily create a PDF of your website. Or to just generally link it easily, say for an RSS reader if it's a filtered RSS feed.&lt;/p&gt;
&lt;h2&gt;Computers to the rescue!&lt;/h2&gt;
&lt;p&gt;&lt;img style="float: right;" src="/Uploads/Gallery/blog/shrinkage.jpg" border="0" alt="Shrinkage" title="Shrinkage" width="150" height="104" /&gt;Somehow I knew computers were involved. Logic and common sense will tell you that since it's too big of a path segment, you need to make it smaller. Generally, in computer speak, there's one way: compression. Our initial reaction, throwing your path segment in a cold pool, won't work.&lt;/p&gt;
&lt;h2&gt;No cold pool?&amp;nbsp; My idea pool is exhausted&lt;/h2&gt;
&lt;p&gt;Since you're trying to pass along selected values, why not pass along the inverse, values that aren't selected, if the list of selected values is too large for a path segment?  Since you know you're screwed if you can't send along half the list, that will be our cutoff point.  Our code now looks like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;	// in our list of "if" statements, this is when we determine the control is a checkbox list
	CheckBoxList cbl = (CheckBoxList)control;
	bool allSelected = false;

	int selectedCount = 0, allCount = cbl.Items.Count;

	foreach (ListItem item in cbl.Items)
	{
		if (item.Selected) selectedCount++;
	}

	// if more than half are selected, use inverse
	bool useInverse = allCount / 2 &amp;lt; selectedCount;
	bool selectAll = allCount == selectedCount;

	if (!selectAll)
	{
		if (useInverse) value = "~";

		foreach (ListItem item in cbl.Items)
		{
			if (item.Selected != useInverse)
				value += item.Value + ",";
		}
		if (value.Length &amp;gt; 1) value = value.Substring(0, value.Length - 1);
	}
	else value = "all";

	/// later on, add "/" + id + "=" + Server.UrlPathEncode(value)
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And for processing the path segment that we get:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;	CheckBoxList cbl = (CheckBoxList)control;
	if (value != "all")
	{
		bool inverse = value.StartsWith("~");
		if (inverse) value = value.Substring(1); // trim "~" from the string
		string[] ids = value.Split(',');

		if (inverse)
		{
			foreach (ListItem item in cbl.Items) item.Selected = true;
		}

		foreach (string id in ids)
		{
			ListItem item = cbl.Items.FindByValue(id);
			if (item != null) item.Selected = !inverse;
		}
	}
	else
	{
		foreach (ListItem item in cbl.Items) item.Selected = true;
	}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/qs_good_request.jpg" border="0" width="810" height="284" /&gt;&lt;/p&gt;
&lt;h2&gt;Any method is not without problems&lt;/h2&gt;
&lt;p&gt;Some caveats to this method:  1.  If half of your list minus one element makes the path info longer than that allowed by ASP.NET, it won't help.  This method is golden, though, if including 75% or more of your full list of CSVs is too long.  So you can now pass along the whole list, or specify 75-100% of it, which you couldn't before.&lt;/p&gt;
&lt;p&gt;2.  If, in some admin interface, someone were to create another item between the time that you generated a CSV list of the item IDs, and when a request was made back with the inversion url style (~1,2,3,4), your included list now includes the new one, which may or may not be desired behavior.&lt;/p&gt;
&lt;p&gt;To see a working example of this method, &lt;a href="/Uploads/FileManager/QSWebTest.zip" target="_blank" title="Path Info Example"&gt;download the path info code&lt;/a&gt;.  You will have to publish it to IIS to see the desired "undesirable" behavior because Cassini does not have the problems with the path info length!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LDEaor1iMEU:AC_MFPDtYoo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LDEaor1iMEU:AC_MFPDtYoo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LDEaor1iMEU:AC_MFPDtYoo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=LDEaor1iMEU:AC_MFPDtYoo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LDEaor1iMEU:AC_MFPDtYoo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LDEaor1iMEU:AC_MFPDtYoo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=LDEaor1iMEU:AC_MFPDtYoo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/LDEaor1iMEU" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 02 Mar 2010 12:00:00 EST</pubDate><guid isPermaLink="false">352</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=867&amp;title=ASPNETs_260_Length_Path_Segment_Should_Be_Enough_For_Anyone_</feedburner:origLink></item><item><title>Choosing a Website Design Company - 32 Questions To Ask</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/uwXsLOJUlSQ/blog.aspx</link><description>&lt;h2&gt;&lt;strong&gt;Experience of the Website Design Company&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;How long have they been in business?&lt;/li&gt;
&lt;li&gt;How many clients do they have?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Do they have experience in relevant Content Management System?&lt;/li&gt;
&lt;li&gt;Can I speak to at least three current references?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;strong&gt;Expertise&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;What are the backgrounds of the team members?&lt;/li&gt;
&lt;li&gt;What type of tools do you use?&lt;/li&gt;
&lt;li&gt;Do you specialize in any particular technologies?&lt;/li&gt;
&lt;li&gt;Do I have branding and visual design guidelines to provide the agency?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;strong&gt;The Website Design Team&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;What people from my organization need to be part of the process?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What roles will make up the agency team and what are there responsibilities?&lt;/li&gt;
&lt;li&gt;Will I have a central point of contact?&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;strong&gt;Process&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Does the agency have a documented process?&lt;/li&gt;
&lt;li&gt;Can I see sample deliverables?&lt;/li&gt;
&lt;li&gt;How many design comps are included?&lt;/li&gt;
&lt;li&gt;How does the revision process work?&lt;/li&gt;
&lt;li&gt;Is training included?&lt;/li&gt;
&lt;li&gt;Do I need usability testing, and if so, at what level?&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;strong&gt;Website Design Pricing&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;What budget parameters have been set?&lt;/li&gt;
&lt;li&gt;What is the structure of pricing (fixed fee, hourly, etc.)?&lt;/li&gt;
&lt;li&gt;Are there ongoing fees involved?&lt;/li&gt;
&lt;li&gt;What kind of support do I need moving forward (maintenance, online marketing, etc.)?&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h3&gt;&lt;strong&gt;Got any good ones I missed? Please drop us a line in the comments section below.&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uwXsLOJUlSQ:gmEbL2ahrgg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uwXsLOJUlSQ:gmEbL2ahrgg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uwXsLOJUlSQ:gmEbL2ahrgg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=uwXsLOJUlSQ:gmEbL2ahrgg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uwXsLOJUlSQ:gmEbL2ahrgg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=uwXsLOJUlSQ:gmEbL2ahrgg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=uwXsLOJUlSQ:gmEbL2ahrgg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/uwXsLOJUlSQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 01 Mar 2010 12:00:00 EST</pubDate><guid isPermaLink="false">354</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=868&amp;title=Choosing_a_Website_Design_Company__32_Questions_To_Ask</feedburner:origLink></item><item><title>Importance of Developing Your Audience Personas</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/BTAXiMB8sf0/blog.aspx</link><description>&lt;p&gt;Personas are developed through research either done beforehand about your target audiences or at the beginning of a web project. Many times surveys to your existing audience help define your audiences' purchasing behavior, personality characteristics, and demographic profile. Many clients have more than one user group and can be split into Primary and Secondary audiences. It is important to identify who these audiences are to translate their offline behavior online when designing your new website.&lt;/p&gt;
&lt;p&gt;By creating personas (audience profiles), your web development team can focus on the issues that are most important to your users and deliver answers to their issues to the forefront. These solutions can come in the form of targeting your content on homepage to drive your audience to the most appropriate sections of your website, call-outs or buttons highlighting the most important information, or even the colors and tones that are chosen for your website. By understanding your audience and creating the right path through your website, you can drive more conversions or purchases.&lt;/p&gt;
&lt;p&gt;Once a website is built, you can monitor your audience and their traffic patterns through an Analytics package such as Google Analytics. By constantly monitoring the most viewed pages and bounce rates and search terms, you can make sure that your original audience profiles or personas were accurate. Your audience interests and purchasing behavior may change over time and it is important to make your website relevant and usable for your audiences. Another good measure is through the use of ongoing online surveys.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BTAXiMB8sf0:Ef7dleGq7rk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BTAXiMB8sf0:Ef7dleGq7rk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BTAXiMB8sf0:Ef7dleGq7rk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=BTAXiMB8sf0:Ef7dleGq7rk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BTAXiMB8sf0:Ef7dleGq7rk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BTAXiMB8sf0:Ef7dleGq7rk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=BTAXiMB8sf0:Ef7dleGq7rk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/BTAXiMB8sf0" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 26 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">353</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=869&amp;title=Importance_of_Developing_Your_Audience_Personas</feedburner:origLink></item><item><title>Links for 2010-02-22 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/6I_Qirg_-Cg/delphicsage</link><pubDate>Tue, 23 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2010-02-22</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.halmatferello.com/lab/wp-js/"&gt;WP JS - Wordpress plugin by Halmat Ferello&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.halmatferello.com/lab/wp-css/"&gt;WP CSS - Wordpress plugin by Halmat Ferello&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wordpress.org/extend/plugins/gzippy/"&gt;WordPress &amp;quot; GZippy &amp;quot; WordPress Plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/6I_Qirg_-Cg" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2010-02-22</feedburner:origLink></item><item><title>Links for 2010-02-16 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/02CEg8vhmJA/delphicsage</link><pubDate>Wed, 17 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2010-02-16</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://eyetools.com/"&gt;Eyetracking Heatmaps, Heatmapping, Analysis, and Optimization | Eyetools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/02CEg8vhmJA" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2010-02-16</feedburner:origLink></item><item><title>Social Media Monitoring</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/yJw3JiZHpa8/blog.aspx</link><description>&lt;h2&gt;Option 1: Beef up existing Analytics package&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Social Media Metrics Plugin:&lt;/strong&gt; &lt;a href="http://userscripts.org/scripts/show/35080"&gt;Social Media Metrics&lt;/a&gt; is a plugin to be used with Google Analytics, providing information on Diggs, stumbles, delicious bookmarks, and more for each individual page. According to &lt;a href="http://mashable.com/2009/04/19/social-media-analytics/"&gt;Mashable&lt;/a&gt;, "Be aware - it's not perfect."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set up specific campaigns&lt;/strong&gt; and events for social media: Most analytics software has custom campaigns to make it easy to track specific events. You can track a specific Twitter traffic campaign or DiggBar URL with campaigns.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set up reports:&lt;/strong&gt; To get specific information on social media, have traffic stats from top social media websites (i.e. Digg (Digg), Facebook (Facebook), Twitter, etc.) emailed to you so you can see it all in one place. If you are tracking specific phrases, you can also set up &lt;a href="http://www.google.com/alerts"&gt;Google Alerts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Google Analytics and Feedburner are essential, free tools to help analyze your company's blog traffic, subscriber count, keyword optimization and additional trends.&lt;/p&gt;
&lt;h2&gt;Option 2: Free Social Media Metrics Tools&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bit.ly/"&gt;Bit.ly:&lt;/a&gt;&lt;/strong&gt; When you use a URL shortener, it's always a smart idea to use one that has analytics information, like Bit.ly (bit.ly). This will track information like number of clicks, traffic sources, and even at what time clicks occur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.postrank.com/"&gt;PostRank:&lt;/a&gt;&lt;/strong&gt; Formerly known as AideRSS, PostRank provides detailed information on Tweets, stumbles, diggs, and FriendFeed all in one place. It's best for blogs and websites with a lot of content.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.scoopler.com/"&gt;Scoopler:&lt;/a&gt; &lt;/strong&gt;Aggregator that organizes content being shared on the internet as it happens via blogs and major social networks. Think of it like eye-witness reports of breaking news, photos and videos from big events, and links to the hottest memes of the day.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://socialtoo.com/"&gt;SocialToo:&lt;/a&gt;&lt;/strong&gt; Creates surveys and tracks social media stats. It also will also notifying you of your new follows and unfollows on Twitter. According to ReadWriteWeb, they will soon be providing a related API for Twitter, Facebook, and FriendFeed to integrate, retrieve, and provide further statistics for each user's Facebook profile.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.xinureturns.com/"&gt;&lt;strong&gt;Xinureturns:&lt;/strong&gt;&lt;/a&gt; Provides an overview of your website presence on popular search engines and social networks. The reports are filled with listings on Technorati, Google, Diggs, and links back to your website.&lt;/p&gt;
&lt;h2&gt;Option 3: Paid Social Media Monitoring Packages&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.radian6.com/advantages/"&gt;&lt;strong&gt;Radian 6:&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;Radian6 provides you with a tool for listening to and engaging with conversations across blogs, Twitter, Facebook, LinkedIn, images, forums and other social media types.Radian 6 was created for ad agencies and is a robust tool with a high price tag. But it's also one of the most intuitive and easiest to use with customization capabilities. They provide real-time data on several dashboard widgets. And now they started to integrate data from WebTrends, Salesforce, and other analytics and CRM solutions - so it really allows the solution to expand with the marketplace.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.viralheat.com/"&gt;&lt;strong&gt;Viralheat&lt;/strong&gt;&lt;/a&gt;: Viralheat, the affordable social media measurement product that scours social video sites including YouTube, Hulu and Vimeo; blogs; websites; and Twitter to deliver real-time results of consumer generated content on these sites. See a great article on Techcrunch: &lt;a href="http://techcrunch.com/2009/10/20/social-media-tracking-platform-viralheat-upgrades-analytics-becomes-location-aware/ "&gt;http://techcrunch.com/2009/10/20/social-media-tracking-platform-viralheat-upgrades-analytics-becomes-location-aware/ &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.scoutlabs.com/"&gt;&lt;strong&gt;ScoutLab:&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;Scout Labs is a self-serve, web-based tool priced for small to mid-sized business and brands. Comparison of Scout Labs and Radian 6: &lt;a href="http://www.socialmediaexplorer.com/2009/04/13/social-media-monitoring-grudge-match-radian6-vs-scout-labs/"&gt;http://www.socialmediaexplorer.com/2009/04/13/social-media-monitoring-grudge-match-radian6-vs-scout-labs/&lt;/a&gt; &amp;nbsp;Conclusion : If you're a small business or on a tight budget, Scout Labs is well worth the investment. If you have a little bit more money to spend and want to see a more powerful tool put to use for your brand, Radian6 might be a better fit. But both are infinitely useful and worth the time and money.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Research for blog post:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mashable.com/2009/04/19/social-media-analytics/"&gt;http://mashable.com/2009/04/19/social-media-analytics/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.frogloop.com/care2blog/2009/6/29/top-8-social-media-tracking-tools.html"&gt;http://www.frogloop.com/care2blog/2009/6/29/top-8-social-media-tracking-tools.html&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yJw3JiZHpa8:OCdB-ibS5lY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yJw3JiZHpa8:OCdB-ibS5lY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yJw3JiZHpa8:OCdB-ibS5lY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=yJw3JiZHpa8:OCdB-ibS5lY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yJw3JiZHpa8:OCdB-ibS5lY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=yJw3JiZHpa8:OCdB-ibS5lY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=yJw3JiZHpa8:OCdB-ibS5lY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/yJw3JiZHpa8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 10 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">351</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=856&amp;title=Social_Media_Monitoring</feedburner:origLink></item><item><title>We're Declaring Our Own Snow Emergency</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/WhRHtcmUSGA/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=WhRHtcmUSGA:IBU9CDId3DA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=WhRHtcmUSGA:IBU9CDId3DA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=WhRHtcmUSGA:IBU9CDId3DA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=WhRHtcmUSGA:IBU9CDId3DA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=WhRHtcmUSGA:IBU9CDId3DA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=WhRHtcmUSGA:IBU9CDId3DA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=WhRHtcmUSGA:IBU9CDId3DA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/WhRHtcmUSGA" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 10 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">350</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=857&amp;title=Were_Declaring_Our_Own_Snow_Emergency</feedburner:origLink></item><item><title>Transitioning from Web Trends to Google Analytics</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/oqQ5QZo0cvI/blog.aspx</link><description>&lt;p&gt;Analytics, whether it is website traffic, PPC, or social media, is a hot topic. As a matter of fact, Delphic Sage has written both a &lt;a href="/default.aspx?p=1423"&gt;whitepaper&lt;/a&gt; and posted a &lt;a href="/home/blog.aspx/d=743/title=Marketing_Analytics_Web_Analytics_Discrepancies"&gt;video&lt;/a&gt; focused on Web Analytics. This blog post answers the specific question: Web Trends or Google Analytics? Given that the answer can save your company upwards of $20K per month, we think it's a good question to ask yourself.&lt;/p&gt;
&lt;h3&gt;Web Trends is a great analytics tool because it allows you to track by individual user.&lt;/h3&gt;
&lt;p&gt;For e-commerce sites or sites that target many audiences and do A/B testing - Web Trends is a great analytics package because you can track each individual user from start to finish to analyze their pattern through your site. This allows you to do testing of content, segment your customers and customize your pages. Other services such as Google Analytics only reports on visitor trends.&lt;/p&gt;
&lt;h3&gt;Most companies don't need Web Trends.&lt;/h3&gt;
&lt;p&gt;Sounds great, right? Why would I drop Web Trends? Well, because most companies do not need to track individual users. Most companies only scrape the surface of their analytics packages. Most companies only want to see top visited pages, top exit pages, top visitor trends. If you are most companies, than a robust IP address tracking system offers you to much information. Unless you are prepared to customize your site to different audience groups, meaning a whole new landing page based on demographics or psychographics, than Web Trends isn't worth the money.&lt;/p&gt;
&lt;p&gt;So now what? If you've decided to drop Web Trends and use Google Analytics, there are 2 things you must know. 1) You're going to lose your historical data. There is no way to convert your existing Web Trends data into GA. 2) Your numbers are not going to match. Let's find out why.&lt;/p&gt;
&lt;h3&gt;All visitors are not created equal.&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;How a visitor is identified:&lt;/strong&gt;&lt;br /&gt;A visitor is identified by IP address and user agent (ie, Firefox or IE6) by all programs including Google Analytics, except for Web Trends, which uses a cookie. It will not be perfectly accurate, as you could quite possibly have shared IP addresses, say corporate firewalls or AOL users which have the same type of user agent AND share the IP-thus DEFLATING your numbers.&lt;/p&gt;
&lt;p&gt;It is also notable that bots will show as visitors for Web Trends. Google Analytics automatically discards bots, but the others would incorporate them into visitor numbers. However, there will be discrepancies among Web Trends bots displayed because they don't use a centralized list of bots. This is confusing because they do report on bots separately, so you would assume, incorrectly, that the bots have been pulled out of visitor reports. You can spot bots in your visitors because they will show a strangely named user agent and their time of visit will be sub 1 minute, more often than not.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Length of visit: &lt;/strong&gt;&lt;br /&gt;The universal standard for a visitor session is 30 minutes. At 30 minutes and 1 second on site, that becomes another visit, thus one visitor can be 2 visits. In some cases, it could be more if a visitor is on your site for a long period of time. Web Trends allows you to define the length of visitor session, Google analytics uses 30 minutes and are NOT adjustable. So depending on your customized settings in Web Trends, your numbers could be inflated. (Example: Visit counts as 15 minutes in Web Trends compared to 30 minutes in Google Analytics)&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Logfile vs. web-based system:&lt;/strong&gt;&lt;br /&gt;Google Analytics will NOT display admin pages or login protected results whereas a log file based program (Web Trends) would, also causing inflated numbers in Web Trends.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=oqQ5QZo0cvI:v-mUxyu5-Qk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=oqQ5QZo0cvI:v-mUxyu5-Qk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=oqQ5QZo0cvI:v-mUxyu5-Qk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=oqQ5QZo0cvI:v-mUxyu5-Qk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=oqQ5QZo0cvI:v-mUxyu5-Qk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=oqQ5QZo0cvI:v-mUxyu5-Qk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=oqQ5QZo0cvI:v-mUxyu5-Qk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/oqQ5QZo0cvI" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 08 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">348</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=836&amp;title=Transitioning_from_Web_Trends_to_Google_Analytics</feedburner:origLink></item><item><title>Code Expressions to Programmaticify Your Umbraco Site</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/-bO9Veth06A/blog.aspx</link><description>&lt;h2&gt;Where these methods break down&lt;/h2&gt;
&lt;p&gt;&lt;img style="float: right;" src="/Uploads/Gallery/blog/jtc/ms972976.viewstate_fig02(en-us,MSDN.10).gif" border="0" /&gt;ASP.NET Controls (henceforth, "controls"), like the Umbraco Macro control, really should be able to handle handle their properties being set at any stage during the ASP.NET page lifecycle that occur before before Render().  For one reason or another, a developer may not determine until, say, the "PreRender" phase, what the value of your control's "Foo" property should be.&amp;nbsp; One example being that other controls that the developer is depending on to determine values of your control were also not written with the "update at any phase" ideology and have not yet come to a determinite state.  The ASP.NET world is a mine field in this way.&lt;/p&gt;
&lt;p&gt;The Umbraco Macro control is one of these controls.  If you set a property, even in my experiences past the "PageInit" phase of the lifecycle, you're wasting clock cycles, and now you'll also have arthritis sooner.  This is where the code expression builder comes in, and shines.  Let's look at code that doesn't work:&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &amp;lt;umbraco:Macro runat="server" id="ctlSomeMacro" MyRuntimeSetProperty="Static Value" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;protected override OnInit(EventArgs e){&lt;br /&gt;	ctlSomeMacro.MacroAttributes["MyRuntimeSetProperty"] = "Runtime Value"; //  My hands hurt.&lt;br /&gt;	base.OnInit(e);&lt;br /&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;As early as OnInit, the Umbraco Macro control doesn't care what you think the value should be.&lt;/p&gt;
&lt;h2&gt;So What's a Code Expression Builder?&lt;/h2&gt;
&lt;p&gt;Great question! MSDN defines  &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.compilation.expressionbuilder.aspx" target="_blank"&gt;Expression Builders&lt;/a&gt; as objects that "parse declarative expressions and create code to retrieve values bound to a control property. In no-compile scenarios, an expression builder that supports a no-compile feature evaluates the expression during run time."  Control property - check.  Declarative Expressions - check.  Runtime - check.  Other stuff - check.&lt;/p&gt;
&lt;p&gt;Here's the simplest CodeExpression code you can find everywhere on the web.  It works beautifully too.&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.CodeDom;&lt;br /&gt;using System.Web.Compilation;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;&lt;br /&gt;// This code is copy / paste-able and does everything, so antiarthritic.&lt;br /&gt;// I believe it's been written once in the history of .NET&lt;br /&gt;// and the namespace has been changed to protect the industrious.&lt;br /&gt;namespace DelphicSage.UmbracoCMS.Helpers&lt;br /&gt;{&lt;br /&gt;	[ExpressionPrefix("Code")]&lt;br /&gt;	public class CodeExpressionBuilder : ExpressionBuilder&lt;br /&gt;	{&lt;br /&gt;		public override CodeExpression GetCodeExpression(BoundPropertyEntry entry,&lt;br /&gt;		   object parsedData, ExpressionBuilderContext context)&lt;br /&gt;		{&lt;br /&gt;			return new CodeSnippetExpression(entry.Expression);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Just drop it into your configuration---&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;	&amp;lt;system.web&amp;gt;&lt;br /&gt;		&amp;lt;compilation&amp;gt;&lt;br /&gt;			&amp;lt;expressionBuilders&amp;gt;&lt;br /&gt;				&amp;lt;add expressionPrefix="Code" type="DelphicSage.UmbracoCMS.Helpers.CodeExpressionBuilder"/&amp;gt;&lt;br /&gt;			&amp;lt;/expressionBuilders&amp;gt;&lt;br /&gt;		&amp;lt;/compilation&amp;gt;&lt;br /&gt;	&amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And here's code that works...&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &amp;lt;umbraco:Macro runat="server" id="ctlSomeMacro" MyRuntimeSetProperty="&amp;lt;%$ Code: base.RuntimeValue %&amp;gt;" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note:  The dollar sign and the "Code:" prefix are there so ASP.NET knows to look for an expression builder.  Besides that, you can put any runtime computable expression inside of it!  For instance, the following values will work&lt;/p&gt;
&lt;p&gt;Date&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &amp;lt;umbraco:Macro runat="server" id="ctlSomeMacro" MyRuntimeSetProperty="&amp;lt;%$ Code: DateTime.Now.ToString() %&amp;gt;" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Math&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &amp;lt;umbraco:Macro runat="server" id="ctlSomeMacro" MyRuntimeSetProperty="&amp;lt;%$ Code: 30+1 %&amp;gt;" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;See some more examples by &lt;a href="/Uploads/FileManager/CodeExpressionsTest.zip" title="Code Expression Examples"&gt;downloading the code&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=-bO9Veth06A:ZL42wdYjr1E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=-bO9Veth06A:ZL42wdYjr1E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=-bO9Veth06A:ZL42wdYjr1E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=-bO9Veth06A:ZL42wdYjr1E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=-bO9Veth06A:ZL42wdYjr1E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=-bO9Veth06A:ZL42wdYjr1E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=-bO9Veth06A:ZL42wdYjr1E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/-bO9Veth06A" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 08 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">346</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=854&amp;title=Code_Expressions_to_Programmaticify_Your_Umbraco_Site</feedburner:origLink></item><item><title>Content is King, Queen and the Court</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/6jLJDFv0mug/blog.aspx</link><description>&lt;h2&gt;Content Strategy&lt;/h2&gt;
&lt;p&gt;Whenever we take on a new client, be it for a web project or as interactive agency of record, one of the first things we assess is their approach to content. Organizations always overstretch, with results such as the proverbial blinking sawhorse of "under construction" or more frequently seen web pages that are woefully outdated. A content plan will address key elements of keeping your content fresh and engaging to your visitors.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Audit what content exists, what customers want and how it is organized&lt;/li&gt;
&lt;li&gt;Use with your brand to define voice and tone&lt;/li&gt;
&lt;li&gt;Build your team of authors&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Create an editorial calendar and process&lt;/li&gt;
&lt;li&gt;Promotional channels&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt; NOTE&lt;/span&gt;&lt;/strong&gt;: I highly recommend "&lt;a href="http://www.contentstrategy.com/" target="_blank" title="Content Strategy for the Web"&gt;Content Strategy for the Web&lt;/a&gt;" by Kristina Halvorson. It's a really short read and chock full good stuff.&lt;/p&gt;
&lt;h2&gt;Spreading the Good Word&lt;/h2&gt;
&lt;p&gt;As you likely know, search engines are constantly in flux, looking for ways to provide better, more relevant results for their users. Facilitated by the explosion of social media, an evolution of search is underway called blended search. Blended search refers to the co-mingling of traditional HTML web pages found in SERPs with other types of content - blogs posts, news feeds, video and even posts from within your own social networks like Facebook and Twitter.&lt;/p&gt;
&lt;p&gt;The impact of this change for marketers is significant. This means your interactive marketing needs to extend beyond the bounds of your corporate web site to find and engage customers and prospects where they live. And not only by publishing content out in your extended online ecosystem, but also interacting with the community at large. Doing so, supports  search initiatives, brand awareness and creates a thriving, interconnected community.&lt;/p&gt;
&lt;h2&gt;User Generated Content&lt;/h2&gt;
&lt;p&gt;Content about your brand doesn't just come form your marketing department these days. The proliferation of blogs, blog comments, user groups, message boards, wikis and of course all aspects of social media mean that good, bad and ugly things are likely being said about your company, it's products/services and your people. This not going to change - if anything, it is going to accelerate. Accept it and move on to how to use it to your advantage. Gain customer feedback, survey the marketplace, learn best practices and deal with complaints head on.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6jLJDFv0mug:S8C0kAPzxsw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6jLJDFv0mug:S8C0kAPzxsw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6jLJDFv0mug:S8C0kAPzxsw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6jLJDFv0mug:S8C0kAPzxsw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6jLJDFv0mug:S8C0kAPzxsw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6jLJDFv0mug:S8C0kAPzxsw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6jLJDFv0mug:S8C0kAPzxsw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/6jLJDFv0mug" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 04 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">344</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=826&amp;title=Content_is_King_Queen_and_the_Court</feedburner:origLink></item><item><title>Links for 2010-02-03 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Gx4xJYg-MyM/delphicsage</link><pubDate>Thu, 04 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2010-02-03</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.seomoz.org/blog/the-web-developers-seo-cheat-sheet"&gt;SEOmoz | The Web Developer's SEO Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Gx4xJYg-MyM" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2010-02-03</feedburner:origLink></item><item><title>Links for 2010-02-02 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/-VJrRqi46K8/delphicsage</link><pubDate>Wed, 03 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2010-02-02</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.edisonresearch.com/home/archives/2010/01/the_edisonadm_consumer_attitudes_to_podcast_advertising_stud.php"&gt;The Edison/ADM Consumer Attitudes To Podcast Advertising Study&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/-VJrRqi46K8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2010-02-02</feedburner:origLink></item><item><title>3 SEO Myths</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/PfixxYP4hzY/blog.aspx</link><description>&lt;p&gt;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="src" value="http://www.youtube.com/v/9dMXsV27ato" /&gt;&lt;embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/9dMXsV27ato"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you have a question that you would like answered in Ask A Sage, submit your question &lt;a href="/home/contact/ask-a-sage.aspx" target="_blank" title="Ask A Sage | Delphicsage.com"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PfixxYP4hzY:aIYM5nzxXio:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PfixxYP4hzY:aIYM5nzxXio:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PfixxYP4hzY:aIYM5nzxXio:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PfixxYP4hzY:aIYM5nzxXio:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PfixxYP4hzY:aIYM5nzxXio:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PfixxYP4hzY:aIYM5nzxXio:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PfixxYP4hzY:aIYM5nzxXio:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/PfixxYP4hzY" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 02 Feb 2010 12:00:00 EST</pubDate><guid isPermaLink="false">343</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=820&amp;title=3_SEO_Myths</feedburner:origLink></item><item><title>301 Redirects for SEO</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/_1VCwRu6X_E/blog.aspx</link><description>&lt;p&gt;A question that we get surprisingly often is, "Can you redirect a redirect?" Often the question is asked a little more confusingly, but that is the gist of it. Sometimes it is more like, "I moved this one page and need to get people off the page it now goes to, and to another page, can I do that?"&lt;/p&gt;
&lt;p&gt;In the video below we explore our best practice for using redirects and the 301 vs. 302 redirect. However, we do suggest that before you move any content that you take time to ask yourself three questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does this content really need to be moved?&lt;/li&gt;
&lt;li&gt;Is this the final iteration of the URL structure, or might it change again?&lt;/li&gt;
&lt;li&gt;Is this a permanent change, or a temporary change?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you know those facts, you can make decisions on your redirect needs.&lt;/p&gt;
&lt;p&gt;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="src" value="http://www.youtube.com/v/wP4sNDer0cs" /&gt;&lt;embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/wP4sNDer0cs"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_1VCwRu6X_E:EJoespuotgg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_1VCwRu6X_E:EJoespuotgg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_1VCwRu6X_E:EJoespuotgg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_1VCwRu6X_E:EJoespuotgg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_1VCwRu6X_E:EJoespuotgg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_1VCwRu6X_E:EJoespuotgg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_1VCwRu6X_E:EJoespuotgg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/_1VCwRu6X_E" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 15 Jan 2010 12:00:00 EST</pubDate><guid isPermaLink="false">338</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=819&amp;title=301_Redirects_for_SEO</feedburner:origLink></item><item><title>Holly-Daze at Delphic Sage</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/kE-dFVo4wKo/blog.aspx</link><description>&lt;p&gt;This year we were responsible for a family of five from the &lt;a href="http://www.rayofhopeproject.org/"&gt;Ray of Hope Project&lt;/a&gt;. On Monday, we took a break from the hustle and bustle and wrapped presents together. The gifts will be delivered to the family on Christmas Eve.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/2009-12-21 wrapping presents.jpg" border="0" width="448" height="335" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/2009-12-21 wrappign presents 2.jpg" border="0" width="448" height="335" /&gt;&lt;/p&gt;
&lt;p&gt;Last Friday, Delphic Sage invited employees and their families for our Annual Holiday Party. This year the party was held at Tir Na Nog and we had an additional tiny guest!&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/holiday_party_1.JPG" border="0" width="448" height="336" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/holiday_party_2.JPG" border="0" width="336" height="448" /&gt;&lt;/p&gt;
&lt;h3&gt;We would like to wish everyone and their families a Happy Holiday Season!&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=kE-dFVo4wKo:CAImnfGTII8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=kE-dFVo4wKo:CAImnfGTII8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=kE-dFVo4wKo:CAImnfGTII8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=kE-dFVo4wKo:CAImnfGTII8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=kE-dFVo4wKo:CAImnfGTII8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=kE-dFVo4wKo:CAImnfGTII8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=kE-dFVo4wKo:CAImnfGTII8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/kE-dFVo4wKo" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 24 Dec 2009 12:00:00 EST</pubDate><guid isPermaLink="false">336</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=812&amp;title=HollyDaze_at_Delphic_Sage</feedburner:origLink></item><item><title>Links for 2009-12-17 [del.icio.us]</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/JHjq3Gjk44I/delphicsage</link><pubDate>Fri, 18 Dec 2009 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/delphicsage#2009-12-17</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/letting-go-of-john-hancock/"&gt;A List Apart: Articles: Letting Go of John Hancock&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/JHjq3Gjk44I" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/delphicsage#2009-12-17</feedburner:origLink></item><item><title>A Video Introduction to Umbraco for Content Editors</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/YLfQpqKevkY/blog.aspx</link><description>&lt;h2&gt;Part 2 of 3 - Managing Media&lt;/h2&gt;
&lt;p&gt;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowscriptaccess" value="always" /&gt;
&lt;param name="src" value="http://www.youtube.com/v/JjVs1lI9CVE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" /&gt;&lt;embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/JjVs1lI9CVE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;h2&gt;Part 3 of 3 - Users and Permissions&lt;/h2&gt;
&lt;p&gt;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowscriptaccess" value="always" /&gt;
&lt;param name="src" value="http://www.youtube.com/v/kSF3D77euqQ&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" /&gt;&lt;embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/kSF3D77euqQ&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=YLfQpqKevkY:pNB7Rp44Rh4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=YLfQpqKevkY:pNB7Rp44Rh4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=YLfQpqKevkY:pNB7Rp44Rh4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=YLfQpqKevkY:pNB7Rp44Rh4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=YLfQpqKevkY:pNB7Rp44Rh4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=YLfQpqKevkY:pNB7Rp44Rh4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=YLfQpqKevkY:pNB7Rp44Rh4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/YLfQpqKevkY" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 16 Dec 2009 12:00:00 EST</pubDate><guid isPermaLink="false">333</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=811&amp;title=A_Video_Introduction_to_Umbraco_for_Content_Editors</feedburner:origLink></item><item><title>CONTROVERSIAL OPINION: The ?? Operator in C# is Not Necessary</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Qnxp2rKi1UM/blog.aspx</link><description>&lt;p&gt;As an exercise in what I propose, I'll include an implementation below and show some examples of how to use it.  I've decided to use the Sql function's naming convention in this case and call my functions IsNull and accomodate whether the value passed in is a Nullable struct or a class and if the default value is a value or if we want to execute a method to get our default value (relevant if the default value is calculated by retrieving records from a database).  The latter case for the default value is what I think the motivating factor was in adding the syntax, since that needs to be done via a delegate, and creating an anonymous delegate really easily was introduced in a later version of c# (in the mean-time I had simply preferred sticking with if-else's.  Unsurprisingly, I'm not too keen on the ? : syntax that's been around from the old c-days either).&lt;/p&gt;
&lt;p&gt;As part of this example, I'm also including methods and examples used for setting null member variables in accessor properties (i.e. get's), because I often find myself wanting to make sure an object's List property is never null.  This removes the need for the calling code to check for null values (Note, the member variable needs to be passed in by reference, so the value (which is itself a reference-type) will be modified. I'll call this function, InitializeNull, since it is initializing null values.&lt;/p&gt;
&lt;p&gt;If you want to use ?? in your property declaration and get it all into one line, your line of code would be:&lt;/p&gt;
&lt;div style="height: 25px; margin-bottom: 10px;" class="csharpcode"&gt;
&lt;p&gt;get { return m_MemberVariable = m_MemberVariable ?? methodCall(); }&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I don't like that solution for a few reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; That code isn't what one would consider clear (unless one has seen it a lot)&lt;/li&gt;
&lt;li&gt; It is easy to make to make the error, "return m_MemberVariable ?? methodCall();"             
&lt;ul&gt;
&lt;li&gt; Which would probably end up with the developer trying to figure out why all calls to the accessor is always returning an empty List (by contrast, the ref requirement on the InitializeNull argument will throw a compilation error if it's missing).&lt;/li&gt;
&lt;li&gt; Not immediately obvious to be wrong, since the way that .Net does a pretty good job of masking how strings are reference types, doing this with strings will probably give the right behavior (the error becomes a lot more obvious with reference types where you modify its properties)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Writing the member variable name twice makes longer member variable names feel even longer in that line of code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Examples of how the the InitializeNull method could be used (the IsNull method seems to obvious to even give examples):&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Examples of the implementation of the methods:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DelphicSage.BlogPosts.IsNullInitialization
{
	public static class Helpers
	{
		/// 
		/// If the first argument is not null, return it.  If the first argument is null, return the second argument.
		/// 
		/// 
		/// 
		/// 
		/// 
		public static TClass IsNull(TClass argument, TClass defaultValue)
			where TClass : class
		{
			if (argument != null)
				return argument;
			else
				return defaultValue;
		}

		/// 
		/// If the first argument is not null, return it.  If the first argument is null, return the return value of the second argument.
		/// 
		/// 
		/// 
		/// 
		/// 
		public static TClass IsNull(TClass argument, Func getDefaultValue)
			where TClass : class
		{
			if (argument != null)
				return argument;
			else
				return getDefaultValue();
		}

		/// 
		/// If the first argument is not null, return its value.  If the first argument is null, return the second argument.
		/// 
		/// 
		/// 
		/// 
		/// 
		public static TStruct IsNull(Nullable argument, TStruct defaultValue)
			where TStruct : struct
		{
			if (argument.HasValue)
				return argument.Value;
			else
				return defaultValue;
		}

		/// 
		/// If the first argument is not null, return its value.  If the first argument is null, return the return value of the second argument.
		/// 
		/// 
		/// 
		/// 
		/// 
		public static TStruct IsNull(Nullable argument, Func getDefaultValue)
			where TStruct : struct
		{
			if (argument.HasValue)
				return argument.Value;
			else
				return getDefaultValue();
		}

		/// 
		/// If toInstantiate is not null, return it.  If it is null, instantiate toInstantiate by using its empty constructor and return itself.
		/// 
		/// 
		/// 
		/// 
		/// 
		/// private List&amp;lt;Address&amp;gt; m_Addresses = null;
		/// 
		/// public List&amp;lt;Address&amp;gt; Addresses
		/// {
		///		get { return HelperFunctions.InitializeNull(ref m_Address); }
		///		set { m_Address = value; }
		/// }
		/// 
		public static TClass InitializeNull(ref TClass toInstantiate)
			where TClass : class, new()
		{
			if (toInstantiate == null)
				toInstantiate = new TClass();
			return toInstantiate;
		}

		/// 
		/// If toInstantiate is not null, return it.  If it is null, set toInstantiate to the results of the method passed in (presumably a constructor) and return itself.
		/// 
		/// 
		/// 
		/// 
		/// 
		/// private List&amp;lt;Address&amp;gt; m_Addresses = null;
		/// 
		/// public List&amp;lt;Address&amp;gt; Addresses
		/// {
		///		get { return HelperFunctions.InitializeNull(ref m_Address, () =&amp;gt; LoadAddresses()); }
		///		set { m_Address = value; }
		/// }
		/// 
		public static TClass InitializeNull(ref TClass toInstantiate, Func constructor)
			where TClass : class
		{
			if (toInstantiate == null)
				toInstantiate = constructor();
			return toInstantiate;
		}

		/// 
		/// If toInstantiate is not null, return it.  If it is null, set toInstantiate to an empty string and return itself.
		/// 
		/// 
		/// 
		public static string InitializeNull(ref string toInstantiate)
		{
			if (toInstantiate == null)
				toInstantiate = String.Empty;
			return toInstantiate;
		}
	}
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Examples of how the the InitializeNull method could be used (the IsNull method seems to obvious to even give examples):&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DelphicSage.BlogPosts.IsNullInitialization
{
	public class Person
	{
		public class Address
		{
			private string m_Address1;
			private string m_Address2;

			public string Address1
			{
				get { return Helpers.InitializeNull(ref m_Address1); }
				set { m_Address1 = value; }
			}

			public string Address2
			{
				get { return Helpers.InitializeNull(ref m_Address2); }
				set { m_Address2 = value; }
			}
		}

		private string m_FirstName = null;
		private string m_LastName = null;
		private string m_SSN = null;
		private List m_NickNamesExample_1_0 = null;
		private List m_NickNamesExample_1_1 = null;
		private List m_NickNamesExample_2_0 = null;
		private List m_NickNamesExample_2_1 = null;

		private List&lt;address&gt; m_Addresses_1_0 = null;
		private List&lt;/address&gt;&lt;address&gt; m_Addresses_1_1 = null;
		private List&lt;/address&gt;&lt;address&gt; m_Addresses_2_0 = null;
		private List&lt;/address&gt;&lt;address&gt; m_Addresses_2_1 = null;

		private List&lt;/address&gt;&lt;address&gt; m_Addresses_3_0 = null;
		private List&lt;/address&gt;&lt;address&gt; m_Addresses_3_1 = null;
		private List&lt;/address&gt;&lt;address&gt; m_Addresses_4_0 = null;

		public string FirstName
		{
			get
			{
				if (m_FirstName == null)
					m_FirstName = "";
				return m_FirstName;
			}
			set
			{
				m_FirstName = value;
			}
		}

		public string LastName
		{
			get { return m_FirstName = m_FirstName ?? ""; }
			set { m_LastName = value; }
		}

		public string SSN
		{
			get { return Helpers.InitializeNull(ref m_SSN); }
			set { m_SSN = value; }
		}

		#region Examples of how one can set a property to an empty constructor call if it is null.
		// In all of these examples the constructor is only evaluated if the property is null.

		public List NickNamesExample_1_0
		{
			get
			{
				if (m_NickNamesExample_1_0 == null)
					m_NickNamesExample_1_0 = new List();
				return m_NickNamesExample_1_0;
			}
			set
			{
				m_NickNamesExample_1_0 = value;
			}
		}

		public List NickNamesExample_1_1
		{
			get { return m_NickNamesExample_1_1 = m_NickNamesExample_1_1 ?? new List(); }
			set { m_NickNamesExample_1_1 = value; }
		}

		public List NickNamesExample_2_0
		{
			get { return Helpers.InitializeNull(ref m_NickNamesExample_2_0); }
			set { m_NickNamesExample_2_0 = value; }
		}

		public List NickNamesExample_2_1
		{
			get { return Helpers.InitializeNull(ref m_NickNamesExample_2_1, () =&amp;gt; new List()); }
			set { m_NickNamesExample_2_1 = value; }
		}

		#endregion // Examples of how one can set a property to an empty constructor call if it is null

		#region // Examples of setting a property to the results of a method call if the property is null
		// In all of these examples the method is only evaluated if the property is null.  Very relevant if the method
		// makes a database call to initialize the property.

		// Methods for creating the 
		private List&lt;/address&gt;&lt;address&gt; loadAddresses()
		{
			return loadAddresses(this.SSN);
		}

		private List&lt;/address&gt;&lt;address&gt; loadAddresses(string ssn)
		{
			List&lt;/address&gt;&lt;address&gt; addressList = new List&lt;/address&gt;&lt;address&gt;();

			// do some database lookup that uses the SSN as a parameter
			// use your imagination.

			return addressList;
		}

		//////////////////////////////////////////////////////////////////////////////////
		/// Examples initializes properties to loadAddresses() if the property is null
		//////////////////////////////////////////////////////////////////////////////////

		public List&lt;/address&gt;&lt;address&gt; Addresses_1_0
		{
			get
			{
				if (m_Addresses_1_0 == null)
					m_Addresses_1_0 = loadAddresses();
				return m_Addresses_1_0;
			}
			set
			{
				Addresses_1_0 = value;
			}
		}

		public List&lt;/address&gt;&lt;address&gt; Addresses_1_1
		{
			get { return m_Addresses_1_1 = m_Addresses_1_1 ?? loadAddresses(); }
			set { m_Addresses_1_1 = value; }
		}

		public List&lt;/address&gt;&lt;address&gt; Addresses_2_0
		{
			get { return Helpers.InitializeNull(ref m_Addresses_2_0, loadAddresses); }
			set { m_Addresses_2_0 = value; }
		}

		public List&lt;/address&gt;&lt;address&gt; Addresses_2_1
		{
			get { return Helpers.InitializeNull(ref m_Addresses_2_1, () =&amp;gt; loadAddresses()); }
			set { m_Addresses_2_1 = value; }
		}

		//////////////////////////////////////////////////////////////////////////////////
		/// Examples initializes properties to loadAddresses(this.SSN) if the property is null
		//////////////////////////////////////////////////////////////////////////////////

		public List&lt;/address&gt;&lt;address&gt; Addresses_3_0
		{
			get
			{
				if (m_Addresses_3_0 == null)
					m_Addresses_3_0 = this.loadAddresses(this.SSN);
				return m_Addresses_3_0;
			}
			set
			{
				m_Addresses_3_0 = value;
			}
		}

		public List&lt;/address&gt;&lt;address&gt; Addresses_3_1
		{
			get { return m_Addresses_3_1 = m_Addresses_3_1 ?? this.loadAddresses(this.SSN); }
			set { m_Addresses_3_1 = value; }
		}

		public List&lt;/address&gt;&lt;address&gt; Addresses_4_0
		{
			get { return Helpers.InitializeNull(ref m_Addresses_4_0, () =&amp;gt; this.loadAddresses(this.SSN)); }
			set { m_Addresses_4_0 = value; }
		}

		#endregion
	}
}
&lt;/address&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;I duplicated a lot of properties (with a varying suffix) so you can see what equivalent calls would be with each of the options presented.  Which one you end up preferring will probably depend on you.  However, I'm someone who prefers at least some words in my code hinting to make what I'm reading less obtuse, particularly when the syntactic shortcut does not necessarily gain you very much (which is more noticeable with the collection generic examples above than the string examples).  So, I know which one I prefer.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Qnxp2rKi1UM:ExZsgHfE3ws:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Qnxp2rKi1UM:ExZsgHfE3ws:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Qnxp2rKi1UM:ExZsgHfE3ws:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Qnxp2rKi1UM:ExZsgHfE3ws:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Qnxp2rKi1UM:ExZsgHfE3ws:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Qnxp2rKi1UM:ExZsgHfE3ws:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Qnxp2rKi1UM:ExZsgHfE3ws:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Qnxp2rKi1UM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Sat, 05 Dec 2009 12:00:00 EST</pubDate><guid isPermaLink="false">331</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=799&amp;title=CONTROVERSIAL_OPINION_The__Operator_in_C_is_Not_Necessary</feedburner:origLink></item><item><title>Basecamp, Greasemonkey &amp;amp; JQuery - Together At Last!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/_mPJlsnYC18/blog.aspx</link><description>&lt;h2&gt;Making it Happen&lt;br /&gt;&lt;/h2&gt;
&lt;h3&gt;If a Task from a Client is Deemed an Appropriate Action Item, it gets Imported to Our Task System&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/intranet_add_task.png" border="0" width="464" height="100" /&gt;&lt;/p&gt;
&lt;p&gt;Project Managers transfer tasks from Basecamp to our intranet simply by using the URL. Once imported, we pull the To-Do items description and comments into our internal system using the Basecamp API. The intranet task and Basecamp To-Do Item are now linked.&lt;/p&gt;
&lt;h3&gt;Here is what the Client Sees in Basecamp&lt;/h3&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/task_in_bcamp_client_view.png" border="0" width="504" height="134" /&gt;&lt;/p&gt;
&lt;p&gt;The To-Do still appears in BaseCamp, but not exactly as the client entered it. It has been prepended with our internal task identifier. This gives our clients and our developers a unique way to identify tasks and bugs to avoid confusion.&lt;/p&gt;
&lt;h3&gt;Making it Easier to Jump Between Basecamp and Our Internal Task Tracker with Greasemonkey&lt;/h3&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/task_in_bcamp.png" border="0" width="504" height="134" /&gt;&lt;/p&gt;
&lt;p&gt;We use &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank"&gt;greasemonkey &lt;/a&gt;(the popular firefox plugin) and &lt;a href="http://jquery.com/" target="_blank"&gt;jquery &lt;/a&gt;(the popular javascript framework) to link our basecamp tasks directly to their counterparts in our internal task tracker. Only Delphic Sage team members see these links because only we have the greasemonkey script installed. This makes jumping back and forth between the two systems a breeze.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/comments.png" border="0" width="468" height="215" /&gt;&lt;/p&gt;
&lt;p&gt;Basecamp comments that have been piped into our internal Task Tracker via the Basecamp API. Once our Tasks were linked to the Basecamp To-Do Items, it was a breeze.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/2009/grease_monkey_script.png" border="0" width="595" height="238" /&gt;&lt;/p&gt;
&lt;p&gt;Here is a peak at the greasemonkey script. You can see that there are many different selectors that we use to find To-Do Item containers in different scenarios. I was surprised by how incosistent the HTML for displaying a To-Do Item is accross the different Basecamp screens. Fortunately, JQuery Selectors make this an esasy hurdle to jump. Once I found all the selctor combinations, it just took a simple regex to parse out the task number and convert into a hyperlink.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_mPJlsnYC18:hs_8UcNvx4I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_mPJlsnYC18:hs_8UcNvx4I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_mPJlsnYC18:hs_8UcNvx4I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_mPJlsnYC18:hs_8UcNvx4I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_mPJlsnYC18:hs_8UcNvx4I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_mPJlsnYC18:hs_8UcNvx4I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_mPJlsnYC18:hs_8UcNvx4I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/_mPJlsnYC18" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Sat, 05 Dec 2009 12:00:00 EST</pubDate><guid isPermaLink="false">318</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=807&amp;title=Basecamp_Greasemonkey_amp_JQuery__Together_At_Last</feedburner:origLink></item><item><title>Mobile Sites Need Love (and Planning) Too.</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Lb2JHwBjBWM/blog.aspx</link><description>&lt;h2&gt;Fundamental Questions that Should Be Asked Before You Invest in a Mobile Web Site&lt;/h2&gt;
&lt;p&gt;So you might be thinking to yourself, if all this new technology is making phones faster and better, why can't they just view my regular website? Well, there are many reasons, not all phones are created equal; there are only a few phones that can handle flash, not all phones can run JavaScript, and network speeds aren't always fast. The biggest questions that need to be asked are the &lt;strong&gt;how&lt;/strong&gt; and the &lt;strong&gt;why &lt;/strong&gt;a person would  browse your website on their mobile phone. This will be different for each business and business model. Is someone just going to be browsing your site when they are waiting in the dentist office? Are they just looking for your address or phone number? Are they looking for a product manual while out in the factory trying to fix a machine?  There are plenty of use cases for every website, the key for each business is figuring out which ones you can satisfy together and which ones are most important. You probably won't be able to please everyone, so you may have to decide if you want an 'OK' site for everyone or a really good, functional site for your most important use case, or somewhere in between.&lt;/p&gt;
&lt;h2&gt;Technical Parameters and Limitations to Consider&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;While you are deciding how you want your mobile website to work, you'll need to keep a few things in mind. Currently the most common smartphone resolution is  320 x 240, subtracting for browser dimensions and a scroll bar, it is common to design for a width of 220 pixels. While your site might not be as wide as some phones offer, most people with resolution below that don't pay for mobile internet plans or have phones that are capable.  I know that everyone wants a great visual design with the latest technology but mobile websites benefit from simplicity. You also need to keep in mind that the interface that each mobile user has is different, some people have touchscreens, others have d-pads, and some have mouse like pointers.  You'll want to keep your buttons big and not to close to each other to allow for fat fingers on touchscreens. You'll also want to stay away from anything flash, there are only a few browsers that work with it and flash files are pretty large mobile phones already suffer from a pretty large speed penalty as it is. If you want videos on your mobile site, I would recommend using Youtube, as it is integrated with several phones. Not all users will be able to view them but you will have a higher percentage than if you went with flash or something else.  JavaScript is working on more and more phones but I would still recommend staying away from anything heavy or any part of the site that is important to the use cases. Anything that is done with JavaScript should be written in a way to also work without it. Contact forms are another area that you need to optimize. Plan on leaving ample space between fields for touch screen users to click between them. Try to reduce the number of fields to the absolute minimum because typing on a phone can be a task and you don't want to scare away users.&lt;/p&gt;
&lt;h2&gt;Making it Happen&lt;/h2&gt;
&lt;p&gt;After all of the planning and wire framing is done, you'll be ready to build your site. There are a few things to keep in mind while building the site, most of these considerations are speed related, this should be a consideration when building any website but I believe that mobile sites are especially fragile in this sense. Without getting too technical, there are a few techniques that can improve the speed of your site without changing it. These techniques include minification, compression, combining images into sprites and they are all talked about in the &lt;a href="http://www.w3.org/2005/MWI/BPWG/Group/Drafts/BestPractices-2.0/ED-mobile-bp2-20091704.html#d1e8981"&gt;W3CMobile Web Application Best Practices&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Testing Considerations&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;The testing variables are immense with mobile sites, this is one reason that i prefer simple designs and functionality. There are thousands of phones and so many browsers that need to be tested for their own individual bugs and quirks. Unless you have a test lab with all of these phones, you'll probably be limited to testing a few major players and rely on emulation for the rest. There are a few tools that can help with testing, Microsoft offers a SDK for .Net Mobile, in this kit there are Windows Mobile Phone Simulators that can be setup and used for testing your website. Like Microsoft, Google offers an SDK for Android that provides you with a phone simulator. If you don't want to setup a project or you're just looking for a quick reference, there are some free virtual mobile browsers out on the internet. Opera offers the &lt;a href="http://www.opera.com/mini/demo/"&gt;Opera Mini Simulator&lt;/a&gt;, I think this is probably the fastest way to get a quick look at a site in a mobile browser. &lt;a href="http://www.testiphone.com/"&gt;TestiPhone.com&lt;/a&gt; has an iPhone Simulator, but it really does not compare to the iPhone simulator that comes with the iPhone SDK from Apple.&lt;/p&gt;
&lt;p&gt;Mobile websites are becoming a more important part of medium and large business web presence, help improve your customers satisfaction by increasing their access to the information they want.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Lb2JHwBjBWM:PO47xKcGpPk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Lb2JHwBjBWM:PO47xKcGpPk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Lb2JHwBjBWM:PO47xKcGpPk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Lb2JHwBjBWM:PO47xKcGpPk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Lb2JHwBjBWM:PO47xKcGpPk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Lb2JHwBjBWM:PO47xKcGpPk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Lb2JHwBjBWM:PO47xKcGpPk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Lb2JHwBjBWM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 01 Dec 2009 12:00:00 EST</pubDate><guid isPermaLink="false">321</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=795&amp;title=Mobile_Sites_Need_Love_and_Planning_Too</feedburner:origLink></item><item><title>Content Planning Tips for Website Launch</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/PR-lxgQ5pxc/blog.aspx</link><description>&lt;p&gt;There are several important tips &amp;amp; tools to properly prepare for website launch especially in regards to content planning. Plan ahead, utilize content mapping diagram or sitemaps, create a timeline, optimize for web, consolidate where necessary and don't forget about SEO best practices.&lt;/p&gt;
&lt;div style="width: 425px; text-align: left;"&gt;&lt;a href="http://www.slideshare.net/tradocaj/content-planning-tips-tools-for-website-launch" title="Content Planning Tips  for Websites"&gt;Content Planning Tips  for Websites&lt;/a&gt; 
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;
&lt;param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=contentplanningtips-091113161555-phpapp01&amp;amp;stripped_title=content-planning-tips-tools-for-website-launch" /&gt;&lt;embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=contentplanningtips-091113161555-phpapp01&amp;amp;stripped_title=content-planning-tips-tools-for-website-launch" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/tradocaj"&gt;tradocaj&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PR-lxgQ5pxc:VDz0PS9tIqE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PR-lxgQ5pxc:VDz0PS9tIqE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PR-lxgQ5pxc:VDz0PS9tIqE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PR-lxgQ5pxc:VDz0PS9tIqE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PR-lxgQ5pxc:VDz0PS9tIqE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PR-lxgQ5pxc:VDz0PS9tIqE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PR-lxgQ5pxc:VDz0PS9tIqE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/PR-lxgQ5pxc" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 13 Nov 2009 12:00:00 EST</pubDate><guid isPermaLink="false">329</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=774&amp;title=Content_Planning_Tips_for_Website_Launch</feedburner:origLink></item><item><title>Yay, It's World Usability Day!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/7xbxhWW-sK4/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7xbxhWW-sK4:88aoab-NX7s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7xbxhWW-sK4:88aoab-NX7s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7xbxhWW-sK4:88aoab-NX7s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=7xbxhWW-sK4:88aoab-NX7s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7xbxhWW-sK4:88aoab-NX7s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=7xbxhWW-sK4:88aoab-NX7s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=7xbxhWW-sK4:88aoab-NX7s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/7xbxhWW-sK4" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 12 Nov 2009 12:00:00 EST</pubDate><guid isPermaLink="false">328</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=768&amp;title=Yay_Its_World_Usability_Day</feedburner:origLink></item><item><title>Thank You Veterans</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/I-FulzVPv2U/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=I-FulzVPv2U:UU0aa84wsQw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=I-FulzVPv2U:UU0aa84wsQw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=I-FulzVPv2U:UU0aa84wsQw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=I-FulzVPv2U:UU0aa84wsQw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=I-FulzVPv2U:UU0aa84wsQw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=I-FulzVPv2U:UU0aa84wsQw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=I-FulzVPv2U:UU0aa84wsQw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/I-FulzVPv2U" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 11 Nov 2009 12:00:00 EST</pubDate><guid isPermaLink="false">327</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=763&amp;title=Thank_You_Veterans</feedburner:origLink></item><item><title>8 Tips For Mid to Large Law Firm Web Design Projects</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/QVPL9EiLUAA/blog.aspx</link><description>&lt;ul&gt;
&lt;li&gt;Sort the Brand Out First&lt;/li&gt;
&lt;li&gt;Different Firms = Different Opportunities&lt;/li&gt;
&lt;li&gt;Manage Politics &amp;amp; Egos&lt;/li&gt;
&lt;li&gt;Harness Firm's Intellectual Capital&lt;/li&gt;
&lt;li&gt;Managing Content Process&lt;/li&gt;
&lt;li&gt;Find Integration Points&lt;/li&gt;
&lt;li&gt;Choosing the Right vendor To Help&lt;/li&gt;
&lt;li&gt;Content Management Platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QVPL9EiLUAA:8fTEJjSGKnc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QVPL9EiLUAA:8fTEJjSGKnc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QVPL9EiLUAA:8fTEJjSGKnc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=QVPL9EiLUAA:8fTEJjSGKnc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QVPL9EiLUAA:8fTEJjSGKnc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=QVPL9EiLUAA:8fTEJjSGKnc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=QVPL9EiLUAA:8fTEJjSGKnc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/QVPL9EiLUAA" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 28 Oct 2009 12:00:00 EST</pubDate><guid isPermaLink="false">326</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=781&amp;title=8_Tips_For_Mid_to_Large_Law_Firm_Web_Design_Projects</feedburner:origLink></item><item><title>PBJ Recognition As Top Software Development Company</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/6UcjKSfysPc/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6UcjKSfysPc:wCl17YfpCP8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6UcjKSfysPc:wCl17YfpCP8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6UcjKSfysPc:wCl17YfpCP8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6UcjKSfysPc:wCl17YfpCP8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6UcjKSfysPc:wCl17YfpCP8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6UcjKSfysPc:wCl17YfpCP8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6UcjKSfysPc:wCl17YfpCP8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/6UcjKSfysPc" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Sun, 25 Oct 2009 12:00:00 EST</pubDate><guid isPermaLink="false">323</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=749&amp;title=PBJ_Recognition_As_Top_Software_Development_Company</feedburner:origLink></item><item><title>Social Media Mistakes: How to Fix Them</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/6LzVJ6a5T2c/blog.aspx</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To recap, the following tips are covered:&lt;/p&gt;
&lt;p&gt;1. Know what your mistake is. Don't be the last person on the planet to understand what was "wrong." You could be dealing with misinterpretation, tone, typo, poor context...just make sure you understand the problem.&lt;/p&gt;
&lt;p&gt;2. Don't take your ball and go home. Don't delete the video, delete your Twitter account, or run away. Face the mistake head-on.&lt;/p&gt;
&lt;p&gt;3. When it comes time for an apology-apologize in full. No ifs, buts, or qualifiers to the apology. Apologies go a long, long way. If you have kids, you know this, right?&lt;/p&gt;
&lt;p&gt;4. Don't play the misinterpretation game-people didn't not understand your point-your point failed.&lt;/p&gt;
&lt;p&gt;5. Respond where it happened. Your platform if that is where the problem occurred, or on a third party when it goes wrong there. You don't respond on your blog to try to take back a conversation that spun out of control elsewhere-people see through that.&lt;/p&gt;
&lt;p&gt;6. No response is needed for sniping. Insults don't need to be justified with a response, criticisms do.&lt;/p&gt;
&lt;p&gt;Keep those tips in mind and you will have a much better social media experience.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6LzVJ6a5T2c:l4CR84RnUVA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6LzVJ6a5T2c:l4CR84RnUVA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6LzVJ6a5T2c:l4CR84RnUVA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6LzVJ6a5T2c:l4CR84RnUVA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6LzVJ6a5T2c:l4CR84RnUVA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6LzVJ6a5T2c:l4CR84RnUVA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6LzVJ6a5T2c:l4CR84RnUVA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/6LzVJ6a5T2c" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 21 Oct 2009 12:00:00 EST</pubDate><guid isPermaLink="false">322</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=758&amp;title=Social_Media_Mistakes_How_to_Fix_Them</feedburner:origLink></item><item><title>Marketing Analytics: Web Analytics Discrepancies</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ilCgB_-VCZY/blog.aspx</link><description>&lt;p&gt;Whether you are evaluating a new package, have already taken the plunge, or are simply trying to reconcile reports-a sinking feeling tends to come over you as you compare two analytics packages. There are a few very valid reasons why packages might not match up, and the video below walks you through some common reasons.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;
&lt;param name="src" value="http://www.youtube.com/v/3gG9e1PcdC0" /&gt;&lt;embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/3gG9e1PcdC0"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ilCgB_-VCZY:SCk8d2uRDh0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ilCgB_-VCZY:SCk8d2uRDh0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ilCgB_-VCZY:SCk8d2uRDh0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ilCgB_-VCZY:SCk8d2uRDh0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ilCgB_-VCZY:SCk8d2uRDh0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ilCgB_-VCZY:SCk8d2uRDh0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ilCgB_-VCZY:SCk8d2uRDh0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ilCgB_-VCZY" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 15 Oct 2009 12:00:00 EST</pubDate><guid isPermaLink="false">320</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=743&amp;title=Marketing_Analytics_Web_Analytics_Discrepancies</feedburner:origLink></item><item><title>APIs - A Brief Overview of the Application Programming Interface</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/HxrIpS0uV70/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HxrIpS0uV70:NP3d9GdqTag:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HxrIpS0uV70:NP3d9GdqTag:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HxrIpS0uV70:NP3d9GdqTag:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=HxrIpS0uV70:NP3d9GdqTag:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HxrIpS0uV70:NP3d9GdqTag:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=HxrIpS0uV70:NP3d9GdqTag:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=HxrIpS0uV70:NP3d9GdqTag:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/HxrIpS0uV70" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 14 Oct 2009 12:00:00 EST</pubDate><guid isPermaLink="false">319</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=742&amp;title=APIs__A_Brief_Overview_of_the_Application_Programming_Interface</feedburner:origLink></item><item><title>The Parallels Between Software Development &amp;amp; Cleaning Your Bathroom</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/4lm729Q86hI/blog.aspx</link><description>&lt;h2&gt;When Cleaning My Bathroom, I Made These Realizations&lt;/h2&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;50% of the effort gets the bathroom about 75% as clean as the "cadillac of cleaning jobs".&lt;/li&gt;
&lt;li&gt;The "50% job" get's it done now when I have time, and the earlier it get's done the more people can benefit from it's cleanliness.&lt;/li&gt;
&lt;li&gt;That "50% job" is not sustainable in the long term, every few weeks I need to get in there on my hands and knees and go to town.&lt;/li&gt;
&lt;/ol&gt; 
&lt;ul&gt;
&lt;/ul&gt;
&lt;h2&gt;How this Parallels Software Development&lt;/h2&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;(More effort == More time) == More money. We generally don't write code because customers want code (some do). They want their business problems solved, and they want them solved as effectively as possible for a reasonable amount of money. It is certainly possible to deliver Pizzas in a $500,000 Bentley Automobile. Is it any more effective than an '04 Corolla? No. Which do you think is a better business decision? (This bathroom analogy is getting old, I'm going to switch to pizza because it's lunchtime and I'm hungry.)&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;A 50%-good solution that people actually have now solves more problems and survives longer than a 99% solution that nobody has because it's in your lab where you're endlessly polishing the damn thing. (Quote: Joel Spolsky quoting&amp;nbsp; Jamie Zawinski in Peter Seibel's book "&lt;a href="http://www.amazon.com/gp/product/1430219483?ie=UTF8&amp;amp;tag=joelonsoftware&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1430219483" target="_blank"&gt;Coders at Work&lt;/a&gt;"). Think about it, you have a backlog of pizza orders and the '04 Corolla is parked outside. On the other hand, you can wait until next week when you could get the loans to go through for the Bentley. Sure, your delivery guy and your customers are likely to be very impressed by that smooth Bentley. But, if their pizzas don't show up until next week it doesn't do anyone a lick of good today.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Software can get "hairy" over time. (Joel has written extensively about this subject too.) The more "quick fixes" you pile on over time, the hairier it gets. This is what refactoring is for. Every now and again you jump in an beautify the code and right the architectural wrongs. &lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;To Be or Not to be a Duct Tape Programmer&lt;/h2&gt;
&lt;p&gt;On our team, speed is crucial. Our clients consistently want more features for less money. The longer a project takes, the more energy and momentum it saps from our entire organization. The effect on morale can even reach out and effect other projects.&amp;nbsp; To a large extent it is a project management issue, but finding a middle ground on the development team is how we can balance the "now" needs of our clients and project managers with the long term maintainability issues that can eventually grow out of control and get us later down the road. I like to think that our dev team is comprised of a good combination of pragmatic "Duct Tape Programmers" who have what it takes to get the job done now, as well as "Serial Polishers" who have what it takes to engineer and elegant solution the first time around.&lt;/p&gt;
&lt;p&gt;If left unchecked, the Duct Tapers might check in some code that is a little bit too kludgey for comfort, and those Serial Polishers might spend weeks over engineering something as simple as a contact form. However, when when they put their heads together they can usually find the sweet spot.&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4lm729Q86hI:BUZEzrzyaEQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4lm729Q86hI:BUZEzrzyaEQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4lm729Q86hI:BUZEzrzyaEQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=4lm729Q86hI:BUZEzrzyaEQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4lm729Q86hI:BUZEzrzyaEQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4lm729Q86hI:BUZEzrzyaEQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=4lm729Q86hI:BUZEzrzyaEQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/4lm729Q86hI" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 05 Oct 2009 12:00:00 EST</pubDate><guid isPermaLink="false">317</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=727&amp;title=The_Parallels_Between_Software_Development_amp_Cleaning_Your_Bathroom</feedburner:origLink></item><item><title>Advantages and Disadvantages of Joomla</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/pv1cnubV6Bs/blog.aspx</link><description>&lt;p&gt;There are several "free" options for possible platforms to create your website including: Drupal, Wordpress, Joomla, and Mambo.&amp;nbsp; If you can determine what your site is going to accomplish and the complexity of the site, you are on your way to determine which platform will work best for you. Hopefully this video can act as a stepping stone in the right direction for making the website platform decision.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.slideshare.net/tradocaj/advantages-and-disadvantages-of-joomla" target="_blank"&gt; &lt;img src="/Uploads/Gallery/blog/Joomla_Slideshare.jpg" border="0" width="511" height="415" /&gt; &lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=pv1cnubV6Bs:O-5adimPQkg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=pv1cnubV6Bs:O-5adimPQkg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=pv1cnubV6Bs:O-5adimPQkg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=pv1cnubV6Bs:O-5adimPQkg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=pv1cnubV6Bs:O-5adimPQkg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=pv1cnubV6Bs:O-5adimPQkg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=pv1cnubV6Bs:O-5adimPQkg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/pv1cnubV6Bs" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 29 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">316</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=714&amp;title=Advantages_and_Disadvantages_of_Joomla</feedburner:origLink></item><item><title>5 SEO Tips for Site Re-launch</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/bNuHc6YEbxg/blog.aspx</link><description>&lt;p&gt;To be fair, it is hard to narrow down five universal site re-launch tips, so these are the five that we think are the most important, and that come up the most frequently.&lt;/p&gt;
&lt;p&gt;It is also a really tough question, because a re-launch could mean many things. Is the re-launch a change of site structure or the code, is it reworking substantial content, is it deleting out of date information? All those choices can impact SEO, but generally speaking we have five key things to concern your self with to ensure a smooth transition. The final checklist we use to make sure a site re-launch is SEO friendly is a little longer, but these 5 tips will get you on the  right path to a smooth re-launch.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=bNuHc6YEbxg:TGSgpF6IGsM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=bNuHc6YEbxg:TGSgpF6IGsM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=bNuHc6YEbxg:TGSgpF6IGsM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=bNuHc6YEbxg:TGSgpF6IGsM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=bNuHc6YEbxg:TGSgpF6IGsM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=bNuHc6YEbxg:TGSgpF6IGsM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=bNuHc6YEbxg:TGSgpF6IGsM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/bNuHc6YEbxg" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 24 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">314</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=703&amp;title=5_SEO_Tips_for_Site_Relaunch</feedburner:origLink></item><item><title>Google Analytics Overview Presentation</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/e2wko8C3EwM/blog.aspx</link><description>&lt;p&gt;In this presentation you will find information on the following:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google Analytics Basics&lt;/li&gt;
&lt;li&gt;Reasons for using Google Analytics&lt;/li&gt;
&lt;li&gt;Cookies&lt;/li&gt;
&lt;li&gt;Other Google Analytics tidbits you probably don't know&lt;/li&gt;
&lt;li&gt;Goals &amp;amp; Funnels   
&lt;ul&gt;
&lt;li&gt;Reports (Funnel Visualization &amp;amp; Reverse Funnel)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bounce Rates&lt;/li&gt;
&lt;li&gt;Profiles&lt;/li&gt;
&lt;li&gt;Tracking Across Domains   
&lt;ul&gt;
&lt;li&gt;Subdomains&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Filters&lt;/li&gt;
&lt;li&gt;Campaign Setup&lt;/li&gt;
&lt;li&gt;Custom Reports (Keyword Performance)&lt;/li&gt;
&lt;li&gt;Internal Site Search   
&lt;ul&gt;
&lt;li&gt;Reports (Search Terms &amp;amp; Start Pages)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=e2wko8C3EwM:N2xOmPlpJRM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=e2wko8C3EwM:N2xOmPlpJRM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=e2wko8C3EwM:N2xOmPlpJRM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=e2wko8C3EwM:N2xOmPlpJRM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=e2wko8C3EwM:N2xOmPlpJRM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=e2wko8C3EwM:N2xOmPlpJRM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=e2wko8C3EwM:N2xOmPlpJRM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/e2wko8C3EwM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 24 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">313</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=707&amp;title=Google_Analytics_Overview_Presentation</feedburner:origLink></item><item><title>Top 5 Rules of Project Management</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/T4q_TwVK1VM/blog.aspx</link><description>&lt;h2&gt;1. Communicate, Communicate, Communicate. Then, communicate some more.&lt;/h2&gt;
&lt;p&gt;The best advice I can give to any project manager is make sure you communicate constantly to your coworkers,&amp;nbsp; your subordinates, your boss, and most importanty your clients. When having a conference call, recap all of the main discussion points with due dates and person responsible for each item. This way there is no confusion when people exit the call. Follow up any meeting or conference call with an email that recaps the main discussion points with due dates and person responsible for each item.&lt;/p&gt;
&lt;h2&gt;2. Get Everything in Writing.&lt;/h2&gt;
&lt;p&gt;Anytime a client calls you on the phone with a question or a scope change, follow up that call with an email to the appropriate parties. I like to use the phrase "As discussed on 9/21, client X has asked for XYZ". This way there is no confusion about what was discussed via phone and you have a record of the conversation. Also, you can cc: any interested parties over email that may not have been privy to the phone conversation.&lt;/p&gt;
&lt;h2&gt;3. Update your project plan. Lather. Rinse. Repeat.&lt;/h2&gt;
&lt;p&gt;Project plans are meant to change and evolve. I've never had any project stick to the original project plan EVER. The beauty of project plans is the "plan". By updating your project plan on a regular basis and distributing to the appropriate parties, all involved are in the loop regarding tasks and due dates and you can communicate any potential setbacks or problems ahead of time. This allows you to "plan" appropriately instead of scrambling at the last minute.&lt;/p&gt;
&lt;h2&gt;4. Nothing beats a face to face meeting.&lt;/h2&gt;
&lt;p&gt;Email is great. So is IM. Texting is helpful too. But when you need to get answers from your team or&amp;nbsp; you're kicking off a project, nothing beats a face to face meeting. I know we are all busy. But email chains back and forth can get confusing and are time consuming. Sometimes its much easier to schedule a quick 15 minute meeting and get everyone in the same room to solve your problem.&lt;/p&gt;
&lt;h2&gt;5. Bossy is a better adjective than incompetent.&lt;/h2&gt;
&lt;p&gt;I've been called lots of things as a project manager but I try to avoid the word "incompetent". Sometimes you just need to be bossy to get the job done. As a matter of fact you were probably hired because you are bossy. Its your job to motivate people to get their tasks done on time. Don't worry about hurting someones feelings. It is possible to be efficient while remaining professional.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=T4q_TwVK1VM:lmBTkNGByeY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=T4q_TwVK1VM:lmBTkNGByeY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=T4q_TwVK1VM:lmBTkNGByeY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=T4q_TwVK1VM:lmBTkNGByeY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=T4q_TwVK1VM:lmBTkNGByeY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=T4q_TwVK1VM:lmBTkNGByeY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=T4q_TwVK1VM:lmBTkNGByeY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/T4q_TwVK1VM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 23 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">310</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=705&amp;title=Top_5_Rules_of_Project_Management</feedburner:origLink></item><item><title>Alan Turing, father of computer science, receives apology from Gordon Brown</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/LolxMEJV9cg/blog.aspx</link><description>&lt;p&gt;&lt;a href="http://www.number10.gov.uk/Page20571"&gt;As quoted from the British Government's website:&lt;/a&gt;&lt;br /&gt;&lt;em&gt;The Prime Minister has released a statement on the Second World War code-breaker, Alan Turing, recognising the "appalling" way he was treated for being gay.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Alan Turing, a mathematician most famous for his work on breaking the German Enigma codes, was convicted of &amp;lsquo;gross indecency' in 1952 and sentenced to chemical castration.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Gordon Brown's statement came in response to a petition posted on the Number 10 website which has received thousands of signatures in recent months.&lt;br /&gt;Read the statement&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;2009 has been a year of deep reflection - a chance for Britain, as a nation, to commemorate the profound debts we owe to those who came before. A unique combination of anniversaries and events have stirred in us that sense of pride and gratitude which characterise the British experience. Earlier this year I stood with Presidents Sarkozy and Obama to honour the service and the sacrifice of the heroes who stormed the beaches of Normandy 65 years ago. And just last week, we marked the 70 years which have passed since the British government declared its willingness to take up arms against Fascism and declared the outbreak of World War Two. So I am both pleased and proud that, thanks to a coalition of computer scientists, historians and LGBT activists, we have this year a chance to mark and celebrate another contribution to Britain's fight against the darkness of dictatorship; that of code-breaker Alan Turing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Turing was a quite brilliant mathematician, most famous for his work on breaking the German Enigma codes. It is no exaggeration to say that, without his outstanding contribution, the history of World War Two could well have been very different. He truly was one of those individuals we can point to whose unique contribution helped to turn the tide of war. The debt of gratitude he is owed makes it all the more horrifying, therefore, that he was treated so inhumanely. In 1952, he was convicted of &amp;lsquo;gross indecency' - in effect, tried for being gay. His sentence - and he was faced with the miserable choice of this or prison - was chemical castration by a series of injections of female hormones. He took his own life just two years later.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thousands of people have come together to demand justice for Alan Turing and recognition of the appalling way he was treated. While Turing was dealt with under the law of the time and we can't put the clock back, his treatment was of course utterly unfair and I am pleased to have the chance to say how deeply sorry I and we all are for what happened to him. Alan and the many thousands of other gay men who were convicted as he was convicted under homophobic laws were treated terribly. Over the years millions more lived in fear of conviction.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I am proud that those days are gone and that in the last 12 years this government has done so much to make life fairer and more equal for our LGBT community. This recognition of Alan's status as one of Britain's most famous victims of homophobia is another step towards equality and long overdue.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;But even more than that, Alan deserves recognition for his contribution to humankind. For those of us born after 1945, into a Europe which is united, democratic and at peace, it is hard to imagine that our continent was once the theatre of mankind's darkest hour. It is difficult to believe that in living memory, people could become so consumed by hate - by anti-Semitism, by homophobia, by xenophobia and other murderous prejudices - that the gas chambers and crematoria became a piece of the European landscape as surely as the galleries and universities and concert halls which had marked out the European civilisation for hundreds of years. It is thanks to men and women who were totally committed to fighting fascism, people like Alan Turing, that the horrors of the Holocaust and of total war are part of Europe's history and not Europe's present.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;So on behalf of the British government, and all those who live freely thanks to Alan's work I am very proud to say: we're sorry, you deserved so much better.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Gordon Brown&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LolxMEJV9cg:hef9mbQERYM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LolxMEJV9cg:hef9mbQERYM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LolxMEJV9cg:hef9mbQERYM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=LolxMEJV9cg:hef9mbQERYM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LolxMEJV9cg:hef9mbQERYM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=LolxMEJV9cg:hef9mbQERYM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=LolxMEJV9cg:hef9mbQERYM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/LolxMEJV9cg" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 22 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">311</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=717&amp;title=Alan_Turing_father_of_computer_science_receives_apology_from_Gordon_Brown</feedburner:origLink></item><item><title>Specialized Search Engines</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/DaIihOUap6I/blog.aspx</link><description>&lt;h3&gt;&lt;img style="float: right;" src="/Uploads/Gallery/blog/search_engines.jpg" border="0" width="300" height="294" /&gt;Mobile/Applications:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.uquery.com"&gt;uquery.com&lt;/a&gt; is a new search engine focused on the emerging market of iPhone &amp;amp; iPod Touch applications. According to their site, "We have listened to many requests of the community and the frustration of being able to search and find applications on the iTunes AppStore".&amp;nbsp; With over 72,000 applications available on the AppStore, uquery is trying to simplify the search process.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.taptu.com/a/main"&gt;Taptu.com&lt;/a&gt; is an alternative search engine for mobile. Taptu is a dowloadable search engine to help you find items that are specific to fit on a mobile screen. Or you can access the site directly from your phone browser.&lt;/p&gt;
&lt;h3&gt;Kids:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://kids.yahoo.com/"&gt;Yahooligans&lt;/a&gt; is just a subdomain of Yahoo but it focuses on Kid friendly games, movies, and music. There are a plethora of kid friendly search engine sites incluing: &lt;a href="http://www.kidsclick.org/"&gt;http://www.kidsclick.org/&lt;/a&gt; and &lt;a href="http://www.askkids.com/"&gt;askkids.com&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Science:&lt;/h3&gt;
&lt;p&gt;If you are in medical school, you have probably visited &lt;a href="http://www.ncbi.nlm.nih.gov/pubmed/"&gt;pubmed.com&lt;/a&gt; at one point or another for research articles/papers. PubMed comprises more than 19 million citations for biomedical articles from medical and ife science journals.&lt;/p&gt;
&lt;h3&gt;Metasearch:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.dogpile.com/"&gt;Dogpile.com&lt;/a&gt; is a metasearch engine that aggregates the most relevant searches from Google, Yahoo!, Bing, and Ask and delivers them to you in a results page. The interesting thing about Dogpile is that it doesn't distingush between sponsored or paid ads and organic search results. They pull in both types of ads from the top search engines into one list.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Real Estate:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.zillow.com/"&gt;Zillow.com&lt;/a&gt; is an online real estate service providing the consumer with valuable tools and information regarding home purchase. It is more of a content based site than a traditional search engine but a good example of specialized search service.&lt;/p&gt;
&lt;h3&gt;Health:&lt;/h3&gt;
&lt;p&gt;Most people have visited &lt;a href="http://www.webmd.com/"&gt;webmd.com&lt;/a&gt; at one point or another for consumer health related search/advice. This is a great opportunity for not only paid ads but also to promote real content and articles. &lt;a href="http://sermo.com/"&gt;Sermo.com&lt;/a&gt; is a forum based site for physicians to search answers to topics.&lt;/p&gt;
&lt;h3&gt;List of other speciality search engines:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/List_of_search_engines"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://searchenginewatch.com/2156251"&gt;Search Engine Watch&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Which search engines do you use?&lt;/h3&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DaIihOUap6I:2ftZF_vgXZc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DaIihOUap6I:2ftZF_vgXZc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DaIihOUap6I:2ftZF_vgXZc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=DaIihOUap6I:2ftZF_vgXZc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DaIihOUap6I:2ftZF_vgXZc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=DaIihOUap6I:2ftZF_vgXZc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=DaIihOUap6I:2ftZF_vgXZc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/DaIihOUap6I" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Fri, 18 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">306</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=682&amp;title=Specialized_Search_Engines</feedburner:origLink></item><item><title>Delphic Sage Recognized Twice As Leading Interactive Agency</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/PaLmYbp8rGA/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PaLmYbp8rGA:Wt-AODUl5-A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PaLmYbp8rGA:Wt-AODUl5-A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PaLmYbp8rGA:Wt-AODUl5-A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PaLmYbp8rGA:Wt-AODUl5-A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PaLmYbp8rGA:Wt-AODUl5-A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=PaLmYbp8rGA:Wt-AODUl5-A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=PaLmYbp8rGA:Wt-AODUl5-A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/PaLmYbp8rGA" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 15 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">307</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=688&amp;title=Delphic_Sage_Recognized_Twice_As_Leading_Interactive_Agency</feedburner:origLink></item><item><title>Real Time Search: The Race Is On</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/qjyrJ21ApxA/blog.aspx</link><description>&lt;h2&gt;&lt;a href="http://www.boilingpage.com" target="_blank"&gt;Boiling Page &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.boilingpage.com" target="_blank"&gt;&lt;img style="float: right; margin-left: 15px; margin-bottom: 15px;" src="/Uploads/Gallery/blog/logo_boilingpage.jpg" border="0" width="170" height="61" /&gt;&lt;/a&gt;Boiling page pulls the "hottest" pages on the web by mining Facebook, Myspace, twitter etc. They also show recommended (related) pages to expand upon the topic searched. Users can subscribe to feeds of topics, which will then populate real time. Here are a few observations about Boiling Page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Not a fan of the logo. Very unprofessional.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; 5-10 second delay on returning results (if we are using Google as a baseline, not so good)r&lt;/li&gt;
&lt;li&gt; Poor relevancy - Searched "Charles Gibson" when it was a trending topic on twitter. It was not in top search results at the time.&lt;/li&gt;
&lt;li&gt; No auto-refresh - user has to be subscribed/registered for that topic/search to receive real-time updates&lt;/li&gt;
&lt;li&gt; 2 minutes and counting....loading of recommended pages for one of Charles Gibson suggested pages&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.twitturly.com" target="_blank"&gt;Twitturly &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.twitturly.com" target="_blank"&gt;&lt;img style="margin-bottom: 15px; margin-left: 15px; float: right;" src="/Uploads/Gallery/blog/logo_twitturly.jpg" border="0" width="196" height="55" /&gt;&lt;/a&gt;This site captures all URL's that are tweeted within the twitterverse. Whether people link directly to the final URL, use TinyURL, Snipurl (snurl), or any other URL shortening service, it counts as a vote that gets added to that URL's tally. To keep things fresh and the quality high, the Twitturly Top100 only shows the 100 most popular URLs over the last 24 hours.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Since August 24, there have been multiple issues/delays tattooed as a banner across top of site.&lt;/li&gt;
&lt;li&gt; Search box should be more prominent&lt;/li&gt;
&lt;li&gt; Came back with one relevant result (seems odd) for Charles Gibson. He is one of trending topics, so you would assume there would be more associated links.&lt;/li&gt;
&lt;li&gt; Only incorporates twitter posts (which you can tell from the Site name)&lt;/li&gt;
&lt;li&gt; Expand beyond twitter and incorporate other networks or sites&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.oneriot.com" target="_blank"&gt;One Riot &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.oneriot.com" target="_blank"&gt;&lt;img style="float: right; margin-bottom: 15px; margin-left: 15px;" src="/Uploads/Gallery/blog/logo_oneriot.jpg" border="0" width="212" height="55" /&gt;&lt;/a&gt;OneRiot, a real time search engine, uniquely prioritizes its search results according to PulseRank, a real time ranking algorithm that delivers search results as they emerge, ordered to reflect current social relevance. The Real time search results show a real time stream of related web pages and videos that the social web is buzzing about right now for any search query. PulseRank Search Results - a feed of search results ordered by relevance using OneRiot's PulseRank algorithm (This has to be as good as google's algorithm to stand a chance).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Very obvious search area&lt;/li&gt;
&lt;li&gt; Charles Gibson search with him retiring was first result (that' what I was looking for) under Pulse Rank&lt;/li&gt;
&lt;li&gt; On Real time, came up as 2nd result, still very relevant search&lt;/li&gt;
&lt;li&gt; Ability to share where it has been posted (tweet, digg, etc) &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Video search did not bring me the breaking news of Charles Gibson retiring (again what I was looking for and was trending at the time)&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.collecta.com" target="_blank"&gt;Collecta&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.collecta.com" target="_blank"&gt;&lt;img style="float: right; margin-bottom: 15px; margin-left: 15px;" src="/Uploads/Gallery/blog/logo_collecta.jpg" border="0" width="176" height="40" /&gt;&lt;/a&gt;Collecta monitors the update streams of popular real time blogs and sites like Twitter, Wordpress, and Flickr, and shows results as they happen. Results can be filtered by status updates, comments, stories, or photos. The entire engine is built around the XMPP standard, which pushes out data on a continual basis, so that for every search you end up watching a stream that keeps updating itself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Presents stream as it comes in and filter by source&lt;/li&gt;
&lt;li&gt;Constantly updating the stream, so it is representative of real time.&lt;/li&gt;
&lt;li&gt;Ability to share the actual search or a search result&amp;nbsp; in real time&lt;/li&gt;
&lt;li&gt;No ability to filter by relevance, which is a key feature&lt;/li&gt;
&lt;li&gt;Comments didn't seem to pick up directly relevant information for Charles Gibson search.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.scoopler.com" target="_blank"&gt;Scoopler &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.scoopler.com" target="_blank"&gt;&lt;img style="float: right; margin-bottom: 15px; margin-left: 15px;" src="/Uploads/Gallery/blog/logo_scoopler.jpg" border="0" width="179" height="45" /&gt;&lt;/a&gt;Scoopler is a real time search engine. It aggregates and organizes content being shared on the Internet as it happens, like eye-witness reports of breaking news, photos and videos from big events, and links to the hottest memes of the day. It does this by constantly indexing live updates from services including Twitter, Flickr, Digg, Delicious and more.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Charles Gibson search (main search, links, videos) all are very relevant and returned the retirement/replacement info that I was looking for&lt;/li&gt;
&lt;li&gt;Popular searches are also present with main stream of results&lt;/li&gt;
&lt;li&gt;Keeps track of your most recent searches in sidebar&lt;/li&gt;
&lt;li&gt;Initial test a few weeks back ran very slow, that issue seems to be resolved&lt;/li&gt;
&lt;li&gt;No images returned for Charles Gibson, which you can easily see exist within this &lt;a href="http://www.google.com/#hl=en&amp;amp;q=charles+gibson&amp;amp;aq=f&amp;amp;aqi=g10&amp;amp;oq=&amp;amp;fp=3aa7f458acaa2672"&gt;Google Search.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.yauba.com" target="_blank"&gt;Yauba &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.yauba.com" target="_blank"&gt;&lt;img style="float: right; margin-bottom: 15px; margin-left: 15px;" src="/Uploads/Gallery/blog/logo_yauba.jpg" border="0" width="119" height="76" /&gt;&lt;/a&gt;Yauba is a new, experimental, Indian search engine that seeks to transform the way people find information online, while providing maximum protection for their safety, security and privacy.&amp;nbsp; As a result, Yauba offers some of the most advanced Internet technologies, features, and innovations in the world.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aggregates streams from internet sites, Social News (like Digg), Blogs, Answers, Images, Videos, MS Office, Linkend In, etc. &lt;/li&gt;
&lt;li&gt;Claim to be the only "privacy safe" search engine (we will see about that)&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Easy ability to filter search&lt;/li&gt;
&lt;li&gt;Multi-lingual search/results (12 languages)&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Does &lt;strong&gt;not &lt;/strong&gt;have real time updates&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Searching "All Places" is an overabundance of information.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.popurls.com" target="_blank"&gt;Popurls&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.popurls.com" target="_blank"&gt;&lt;img style="float: right; margin-bottom: 15px; margin-left: 15px;" src="/Uploads/Gallery/blog/logo_popurls.jpg" border="0" width="174" height="55" /&gt;&lt;/a&gt;Popurls is the dashboard for the latest web-buzz, a single page that encapsulates up-to-the-minute headlines from the most popular sites on the internet.With the intention to get a quick glance on what's happening on the web while keeping the common newsreader clean from short-term headlines, Popurls creates the original trend of "single page aggregators". Rather than a tool, Popurls is considered as a gate to a highly selective collection of the most popular sites, presented in a usable way for every device &amp;amp; service.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has a ton of information to sort through on the homepage, but many are very popular topics. Rollover article title has paragraph about the article for preview (ability to share)&lt;/li&gt;
&lt;li&gt;Search is up to the hour with relevant results for Charles Gibson&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Search results do not keep refreshing, so it is not pulling real time.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href="http://www.cuil.com" target="_blank"&gt;Cuil&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.cuil.com" target="_blank"&gt;&lt;img style="float: right; margin-bottom: 15px; margin-left: 15px;" src="/Uploads/Gallery/blog/logo_cuil.jpg" border="0" width="120" height="73" /&gt;&lt;/a&gt;Cuil is the self-proclaimed  world's biggest search engine. Cuil searches for and ranks pages based on their content and relevance. When they find a page with your keywords, they stay on that page and analyze the rest of its content, its concepts, their inter-relationships and the page's coherency. Then they offer you helpful choices and suggestions until you find the page you want and that you know is out there.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-lingual&lt;/li&gt;
&lt;li&gt;Suggestive search is a nice (not new) feature. &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Consistently updates every 15-30 seconds&lt;/li&gt;
&lt;li&gt;It is more comparable to twitter search, not as user-friendly in my opinion.&lt;/li&gt;
&lt;li&gt;Area for result display is very limited Hotness factor (assuming how often people are discussing it in real time) &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Marketing made this popular since it was created by ex-googlers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, it definitely looks like there is room for improvement/growth in the real time search world. I don't think any of these are Google killers for the time being, but some do have potential.&amp;nbsp; What are your thoughts on real time search engines?&lt;/p&gt;
&lt;p&gt;Inspiration for this post from &lt;a href="http://www.techrunch.com"&gt;Techcrunch &lt;/a&gt;and &lt;a href="http://www.crunchbase.com"&gt;Crunchbase&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qjyrJ21ApxA:ws7NQUI4DK4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qjyrJ21ApxA:ws7NQUI4DK4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qjyrJ21ApxA:ws7NQUI4DK4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qjyrJ21ApxA:ws7NQUI4DK4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qjyrJ21ApxA:ws7NQUI4DK4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qjyrJ21ApxA:ws7NQUI4DK4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qjyrJ21ApxA:ws7NQUI4DK4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/qjyrJ21ApxA" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 08 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">299</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=681&amp;title=Real_Time_Search_The_Race_Is_On</feedburner:origLink></item><item><title>Panoramic View From Delphic Sage Outing at CBP</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/cjya-Kb8Gfw/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cjya-Kb8Gfw:7kUnVZf2AhM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cjya-Kb8Gfw:7kUnVZf2AhM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cjya-Kb8Gfw:7kUnVZf2AhM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=cjya-Kb8Gfw:7kUnVZf2AhM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cjya-Kb8Gfw:7kUnVZf2AhM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=cjya-Kb8Gfw:7kUnVZf2AhM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=cjya-Kb8Gfw:7kUnVZf2AhM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/cjya-Kb8Gfw" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 03 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">300</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=673&amp;title=Panoramic_View_From_Delphic_Sage_Outing_at_CBP</feedburner:origLink></item><item><title>Is _____ dead? (An Unordered Top 10 List)</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/JNrpahmPby8/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNrpahmPby8:JfP9SbL7Hbg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNrpahmPby8:JfP9SbL7Hbg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNrpahmPby8:JfP9SbL7Hbg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=JNrpahmPby8:JfP9SbL7Hbg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNrpahmPby8:JfP9SbL7Hbg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNrpahmPby8:JfP9SbL7Hbg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=JNrpahmPby8:JfP9SbL7Hbg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/JNrpahmPby8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 02 Sep 2009 12:00:00 EST</pubDate><guid isPermaLink="false">298</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=668&amp;title=Is_______dead_An_Unordered_Top_10_List</feedburner:origLink></item><item><title>Ask A Sage </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/OLThNy2Tgh8/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OLThNy2Tgh8:LYT6Kzq0kSE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OLThNy2Tgh8:LYT6Kzq0kSE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OLThNy2Tgh8:LYT6Kzq0kSE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=OLThNy2Tgh8:LYT6Kzq0kSE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OLThNy2Tgh8:LYT6Kzq0kSE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OLThNy2Tgh8:LYT6Kzq0kSE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=OLThNy2Tgh8:LYT6Kzq0kSE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/OLThNy2Tgh8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 25 Aug 2009 12:00:00 EST</pubDate><guid isPermaLink="false">297</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=637&amp;title=Ask_A_Sage_</feedburner:origLink></item><item><title>Sitecore Lands in the Gartner Magic Quadrant</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/j4aw2QxZAgk/blog.aspx</link><description>&lt;p&gt;From the Sitecore Press Release:&amp;nbsp;"&lt;em&gt;We consider our positioning in the Web Content Management quadrant, by Gartner, confirmation of our mission to enable customers to unlock the power of content to improve their Web strategies and overall business performance," said Michael Seifert, CEO, Sitecore. "With the recent launch of Sitecore Online Marketing Suite we continue to deliver solutions that transform the Web CMS industry and further enhance our market position."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bravo friends. You can &lt;a href="http://www.sitecore.net/en/News/Press-releases/2009/Gartner-Magic-Quadrant.aspx" title="Sitecore CMS Gartner Magic Quadrant"&gt;read the report here. &lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=j4aw2QxZAgk:5-yBYuNY1Sc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=j4aw2QxZAgk:5-yBYuNY1Sc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=j4aw2QxZAgk:5-yBYuNY1Sc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=j4aw2QxZAgk:5-yBYuNY1Sc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=j4aw2QxZAgk:5-yBYuNY1Sc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=j4aw2QxZAgk:5-yBYuNY1Sc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=j4aw2QxZAgk:5-yBYuNY1Sc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/j4aw2QxZAgk" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 20 Aug 2009 12:00:00 EST</pubDate><guid isPermaLink="false">296</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=630&amp;title=Sitecore_Lands_in_the_Gartner_Magic_Quadrant</feedburner:origLink></item><item><title>Guide to Social Media White Paper</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/xcKWp1bVE-U/blog.aspx</link><description>&lt;p&gt;After doing a number of Social Media presentations, we started to get a sense that there really needed to be a clear cut explanation of how to practically use social media. We had two questions that we felt were the most important to answer.&lt;/p&gt;
&lt;p&gt;First, we wanted to answer the question "Can social media actually help my bottom line?" Secondly, we wanted to work to debunk the conventional wisdom that social media is impossible to really track. We then worked to answer those two questions with practical advice and examples, and more importantly, go beyond a simple Social Media 101 White Paper and focus on refining a tentative entry into social media into a mission critical marketing function.&lt;/p&gt;
&lt;p&gt;The following topics are discussed in the Social Media White Paper:&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Social Media Driving Revenue. What revenue is practically driven by Social Media?&lt;/li&gt;
&lt;li&gt;Tracking and Using Social Media Measurement tools. What should be tracked and what tools are available to assist in execution?&lt;/li&gt;
&lt;li&gt;Resource Planning. The bottom line for planning to engage in Social Media.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;We take a look at how revenue is actually impacted by social media, how to best track your social media campaigns beyond the number of followers that you have on Twitter, and look at the real world implications of being involved in social media from a staffing perspective. Rather than hypothetically discuss social media, we use concrete examples of how to refine and tune social media campaigns.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You may view the full white paper &lt;a href="/home/marketing-white-papers/social-media-butterfly.aspx" target="_blank" title="Social Media Guide White Paper by Delphic Sage"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xcKWp1bVE-U:kbEQ2HvCkqM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xcKWp1bVE-U:kbEQ2HvCkqM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xcKWp1bVE-U:kbEQ2HvCkqM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=xcKWp1bVE-U:kbEQ2HvCkqM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xcKWp1bVE-U:kbEQ2HvCkqM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xcKWp1bVE-U:kbEQ2HvCkqM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=xcKWp1bVE-U:kbEQ2HvCkqM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/xcKWp1bVE-U" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 18 Aug 2009 12:00:00 EST</pubDate><guid isPermaLink="false">294</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=620&amp;title=Guide_to_Social_Media_White_Paper</feedburner:origLink></item><item><title>Check out our Free White Paper on Real Estate Mobile Marketing</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/BVjhVOWAQ1o/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BVjhVOWAQ1o:23tmI-QPdeQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BVjhVOWAQ1o:23tmI-QPdeQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BVjhVOWAQ1o:23tmI-QPdeQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=BVjhVOWAQ1o:23tmI-QPdeQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BVjhVOWAQ1o:23tmI-QPdeQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=BVjhVOWAQ1o:23tmI-QPdeQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=BVjhVOWAQ1o:23tmI-QPdeQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/BVjhVOWAQ1o" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 11 Aug 2009 12:00:00 EST</pubDate><guid isPermaLink="false">291</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=715&amp;title=Check_out_our_Free_White_Paper_on_Real_Estate_Mobile_Marketing</feedburner:origLink></item><item><title>Site Launch: ABIMFoundation.org</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/mlHCYvNuI8s/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=mlHCYvNuI8s:tCCyf45cmK8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=mlHCYvNuI8s:tCCyf45cmK8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=mlHCYvNuI8s:tCCyf45cmK8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=mlHCYvNuI8s:tCCyf45cmK8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=mlHCYvNuI8s:tCCyf45cmK8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=mlHCYvNuI8s:tCCyf45cmK8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=mlHCYvNuI8s:tCCyf45cmK8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/mlHCYvNuI8s" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Tue, 04 Aug 2009 12:00:00 EST</pubDate><guid isPermaLink="false">290</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=609&amp;title=Site_Launch_ABIMFoundationorg</feedburner:origLink></item><item><title>Site Launch: Porcelanosa USA</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ACvfi5Tqdmc/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ACvfi5Tqdmc:OJEQwb3nJ7M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ACvfi5Tqdmc:OJEQwb3nJ7M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ACvfi5Tqdmc:OJEQwb3nJ7M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ACvfi5Tqdmc:OJEQwb3nJ7M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ACvfi5Tqdmc:OJEQwb3nJ7M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ACvfi5Tqdmc:OJEQwb3nJ7M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ACvfi5Tqdmc:OJEQwb3nJ7M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ACvfi5Tqdmc" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 03 Aug 2009 12:00:00 EST</pubDate><guid isPermaLink="false">289</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=607&amp;title=Site_Launch_Porcelanosa_USA</feedburner:origLink></item><item><title>Site Launch: Songdo IBD</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/P4EqUWxM-fQ/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=P4EqUWxM-fQ:sNjn3MASz6M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=P4EqUWxM-fQ:sNjn3MASz6M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=P4EqUWxM-fQ:sNjn3MASz6M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=P4EqUWxM-fQ:sNjn3MASz6M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=P4EqUWxM-fQ:sNjn3MASz6M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=P4EqUWxM-fQ:sNjn3MASz6M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=P4EqUWxM-fQ:sNjn3MASz6M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/P4EqUWxM-fQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 29 Jul 2009 12:00:00 EST</pubDate><guid isPermaLink="false">288</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=606&amp;title=Site_Launch_Songdo_IBD</feedburner:origLink></item><item><title>Using ASP.Net for Code Generation</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/B0Sf8VHbb8k/blog.aspx</link><description>&lt;p&gt;Here's a quick &lt;a href="/Uploads/FileManager/AspCodeGenerationExample.zip"&gt;example project&lt;/a&gt; to demonstrate the concept and does some encapsulation of the reusable code into shared and base classes.&lt;/p&gt;
&lt;p&gt;The general strategy implemented is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt; Have one .&lt;span&gt;aspx&lt;/span&gt; page per template&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Your code generation utility or client sends a &lt;span&gt;HttpWebRequest&lt;/span&gt; to that page to generate the text from a template&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Serialize your arguments for the template to XML&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Post the text of the XML-serialized arguments as part of your &lt;span&gt;HttpWebRequest&lt;/span&gt;, like you would an attached file to an html page&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Read the Response's stream to get your generated file&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Just from experience, you'll might also want to include meta-data with the &lt;span&gt;reponse&lt;/span&gt;, such as, this text is being generated for a file, what should that file be called (e.g. I'm generating a C# class file, the file should be named after the class), and what type of file is it (e.g. you might be writing a utility that wants to keep a list of generated &lt;span&gt;sql&lt;/span&gt; files that get generated to give the user the option to enumerate through and execute them).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;To implement responses as classes that can have meta data (such as file names) about the generated text coming back, I expanded the "Read the Response" step above into the following.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Have a common, XML-&lt;span&gt;serializable&lt;/span&gt;, response class that has a CDATA Section for holding the generated text and has properties for whatever other meta-data you want with your file.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Override OnRender&lt;/span&gt; for your template .&lt;span&gt;aspx&lt;/span&gt; page.  Render out the page to a temporary string.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Create an instance of the &lt;span&gt;repsonse&lt;/span&gt; class, set its properties accordingly, serialize it to &lt;span&gt;xml&lt;/span&gt;, and write it out to the Render method's &lt;span&gt;XmlTextWriter&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Have the client utility read the Response's stream and &lt;span&gt;deserialize&lt;/span&gt; the text as your response object&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A lot of this logic can be wrapped up in base and re-usable classes.  Here is an example project that uses showing how one might implement those re-usable classes and an example of how to call them.  In this case, to keep the example of how to use the classes and setup simple, the example calls to the template pages is also in the web project.  In practice you might want to write a windows application and a web application, in which the web application is for the templates and the windows application contains the UI for your code generation utility.&lt;/p&gt;
&lt;p&gt;The names of the relevant classes in the code example are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;CodeGenerationPage&lt;/span&gt; (base class for your template pages)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;CodeGenerationRequest&lt;/span&gt; (class to encapsulate class to &lt;span&gt;CodeGenerationPages&lt;/span&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;CodeGenerationResponse&lt;/span&gt; (class containing the generated text and the meta-data about it)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;CodeGenerationResponseWriter&lt;/span&gt; (a class for taking the responses and writing them out to the hard drive).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It should be noted that removing the Form runat="server" tag in the template/aspx page takes away intellisense for your controls in visual studio (the work around to this woulbe leaving in the boilerplate html while writing/updating the html, but then deleting the html before checking-in/committing/using your changes).&amp;nbsp;Another option would be a variant on what was presented here and move the templates to user controls and have the page containing the user control override its RenderControl method and have it only render out its template user control or possibly an xml-serialized object that represents a collection of mutiple template response objects.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So you can see, there's a little bit of groundwork one has to do to use asp.net for their code generation, but once it's done and it only has to be done once.&lt;/span&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=B0Sf8VHbb8k:qJso4Gs_KRE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=B0Sf8VHbb8k:qJso4Gs_KRE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=B0Sf8VHbb8k:qJso4Gs_KRE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=B0Sf8VHbb8k:qJso4Gs_KRE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=B0Sf8VHbb8k:qJso4Gs_KRE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=B0Sf8VHbb8k:qJso4Gs_KRE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=B0Sf8VHbb8k:qJso4Gs_KRE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/B0Sf8VHbb8k" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 15 Jul 2009 12:00:00 EST</pubDate><guid isPermaLink="false">277</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=600&amp;title=Using_ASPNet_for_Code_Generation</feedburner:origLink></item><item><title>10 Ways to Know Correct SEO Advice </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/zfvwybcLj3o/blog.aspx</link><description>&lt;p&gt;Blogs are great, and great information comes from them. Matt Cutts' blog is essential for SEO strategy. However, the list of blogs that have accurate information is pretty slim.  My concern really centers on what types of advice people take, how they implement it, and what the source of the advice is.&lt;/p&gt;
&lt;h2&gt;In order to give an idea of how to separate good SEO advice from bad SEO advice, I put together 10 ways to Know Correct SEO Advice:&lt;/h2&gt;
&lt;div class="hr"&gt;&lt;/div&gt;
&lt;table border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" align="left" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_1.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;The information should be recent.&lt;/h3&gt;
&lt;p&gt;In 2000 or 2001, keyword density mattered. In 2000, you could join any directory and it would help. You could do cloaking and redirects and all kinds of things for ranking. Those things don't work anymore. As the search engines change, strategy has to change-stay with the times. My suggestion, never ever go back later than one year. And, if possible, stay within the last few months. Better yet, set up a handful or RSS feeds and spend one day a week keeping up to date.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_2.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;Google has guidelines.&lt;/h3&gt;
&lt;p&gt;They matter. If the advice you read goes against them, it is terrible advice. There are a ton of examples ranging from hidden content to buying links. Learn the guidelines, say &lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769&amp;amp;ctx=sibling" target="_blank" title="Google Guidelines"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_3.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;AdSense everywhere.&lt;/h3&gt;
&lt;p&gt;Not good. In general, if the singular, transparent point of the information is to either make money via AdSense or sell you discount SEO services, something is up.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_4.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;Matt Cutts is always right.&lt;/h3&gt;
&lt;p&gt;If his blog says it, do it. If his blog says it doesn't work, don't do it. And if you are uncertain about a tactic, run a search on his blog to make sure the advice hasn't been debunked. While the Google guidelines might be more clear cut sometimes, there is no more timely source of accurate information than Matt Cutts' blog.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_5.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;Do they cite sources (other than just another blog)?&lt;/h3&gt;
&lt;p&gt;In general, much like Wikipedia, more references are a good thing.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_6.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;How much brimstone comes with the sermon?&lt;/h3&gt;
&lt;p&gt;There is a direct correlation between how hard the source works to frighten you to how little you need to worry.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_7.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;Private or hidden registration&lt;/h3&gt;
&lt;p&gt;Sites with private or hidden registration are not the voice of reason in a mad, mad world.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_8.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;Advice with a methodology&lt;/h3&gt;
&lt;p&gt;Advice that comes with a methodology to check the advice or a case study from a disclosed, verifiable example tends to be good advice more often than not.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_9.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;SEO and PPC&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;Advice that directly links SEO and PPC is not good, for anything other than keyword purposes.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 15px;" valign="top"&gt;&lt;img src="/Uploads/Gallery/blog/no_10.jpg" border="0" width="49" height="33" /&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;h3&gt;Advice that is a lead in to an e-book.&lt;/h3&gt;
&lt;p&gt;Nothing wrong with books, e or otherwise, but there is a difference between a sales letter and SEO best practices.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="hr"&gt;&lt;/div&gt;
&lt;p&gt;Hope that helps, happy seo work.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=zfvwybcLj3o:1ldJ8GJt2OU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=zfvwybcLj3o:1ldJ8GJt2OU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=zfvwybcLj3o:1ldJ8GJt2OU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=zfvwybcLj3o:1ldJ8GJt2OU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=zfvwybcLj3o:1ldJ8GJt2OU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=zfvwybcLj3o:1ldJ8GJt2OU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=zfvwybcLj3o:1ldJ8GJt2OU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/zfvwybcLj3o" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 02 Jul 2009 12:00:00 EST</pubDate><guid isPermaLink="false">283</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=605&amp;title=10_Ways_to_Know_Correct_SEO_Advice_</feedburner:origLink></item><item><title>SEO First Steps: Prioritizing SEO Tasks</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/XE8fvtS2ZzU/blog.aspx</link><description>&lt;p&gt;I love, love, and super love, when a company takes initiative and actually pays attention to SEO as part of their marketing mix (or in the current economic climate) their entire plan it seems. However, I feel like there are three things that really get things off on the wrong foot when it comes to beginning a SEO effort for your site:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Not setting goals. I don't understand why common sense doesn't render this suggestion useless, but start at the beginning-that means, set goals.  Even if we are talking about something as basic as, "What are you trying to accomplish?" Do you have one phrase? One hundred? Don't worry about doing keyword research or even stressing about search volume or divvying up time at first, just answer the simple question, "What are we trying to do?" After that question is answered, you can start to work on a plan to get there.&lt;/li&gt;
&lt;li&gt;Have a plan. In theory, after you answer the main question of "What are we trying to do?" you will hopefully begin to work on more tangible smaller goals, and put together some ideas of how to achieve it. There is no shame in having a goal of "get more people to read about my product" and then have part of your plan consist of "tell people it's good." While that won't get you where you want to go, it gets the ball rolling, and gets you ready to work the plan.&lt;/li&gt;
&lt;li&gt;Work the plan. When I hear "we started implementing some things" I think of that as code for, "we randomly did a bunch of stuff that was suggested on various blogs and we are having a lot of problems that we now need fixed really soon because no one can find our site."  Work the plan. Slow and steady, so you can see when something helps or tanks your rankings or traffic.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, those suggestions are the same three you seem rehashed on every SEO project post. Well, let me add a bit more creativity to the post, say the equivalent of Jason's Mother being the killer in Friday the 13th and not just Jason. Let me tackle the most daunting piece of your planning: deciding what to do.&lt;br /&gt;If you have already decided to work on SEO for your website, and you make it past the goal setting portion of planning, the thing that causes the most stress, more than anyone saying "this will be a piece of cake" or "I need to go check out that strange noise" is deciding what tactics to prioritize. More often than not, that list is composed of an almost infinite number of suggestions gathered from various SEO blogs and webinars. If that is the case, there is often some great information, and some not so great information. However, what is often the hardest thing to do is to narrow your focus and put real tactics against abstract pieces of your plan. For example, check for in-bound links to moved pages or keyword research, which do you do first? Here is how you divide your tasks:&lt;br /&gt;SEO First Step should be the activities that deal with your site from a technical standpoint. To keep this simple, focus on 5 things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Is your site available? Look in your analytics package and make sure you don't see a lot of errors. Run a few versions of HTTP header checkers and make sure you have 200 respones (ok). If you see 500s, 400s, or 300s-dig in deeper. If those are 302s, change them to 301 or rewrite them. 302s won't help you for SEO.&lt;/li&gt;
&lt;li&gt;Is anything hidden? Keywords, phrases, content of any kind hidden in CSS or snuck behind flash will give you more headaches than you can imagine. And the worst part is trying to diagnose it as the problem. Remember, intent doesn't matter-that is, just because you are doing a show/hide for aesthetics doesn't make up for the fact that you have hidden content. Spammy or for aesthetics, don't hide content. Ever.&lt;/li&gt;
&lt;li&gt;Canonize it. Do you have more than one version of the same content on your site? Are you sure? Do you have two versions of the same page? For example, one with keywords used and one with category IDs? Or do you have the old format of your URL and the new format both live? Fix those items, you want one canonized version.&lt;/li&gt;
&lt;li&gt;The power of metatags...to bury your page. You know that title tag that has your page title? It not only needs to have a title, but one that incorporates your keywords. You know that keywords metatag? If you have more than 50, you just spammed it. If you have more than 12, you lost any help it might give you. And if you think it might help your Google rankings, it won't. Google doesn't give weight to that tag. On the flip side, if you spammed it, Google will taketh away. More importantly, if you overuse your H tags or use them for the wrong keywords, you will feel the pain. You might see a small bump from correct metatags (especially the uber important title tag) but you will certainly see a precipitous drop from having incorrect tags.&lt;/li&gt;
&lt;li&gt;Navigation. This is a large and winding item that could leads to 10 or 20 blog posts, but to summarize, run a number of spider tools on your pages over the course of a couple of weeks. How many pages will the spiders average? If it is single digits, that is bad news. For the purposes of SEO, you want a URL that has your keywords, you want a URL that has 15 or less parameters (preferably a lot less),  and you want navigation that prioritizes your most important pages. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now that you have knocked out the first step, you can move on to the next steps in your SEO strategy. But that is the sequel blog post, which unfortunately will have less quality, but much more gore. That's the way these things work.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;em&gt;Epilogue&lt;/em&gt;: A good SEO second step is to ensure that you have analytics running and installed properly. Test it. For your SEO third step (and very time intensive) is to do your keyword research and map that to specific content or lack thereof for your site). A great SEO fourth step should be focusing on creating engaging content and putting together an editorial schedule. Your seemingly neverending SEO fifth step is to build your links. The SEO sixth step is to review your metrics, your goals, and build on what you have done.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XE8fvtS2ZzU:IiKMIh_BIis:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XE8fvtS2ZzU:IiKMIh_BIis:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XE8fvtS2ZzU:IiKMIh_BIis:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=XE8fvtS2ZzU:IiKMIh_BIis:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XE8fvtS2ZzU:IiKMIh_BIis:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=XE8fvtS2ZzU:IiKMIh_BIis:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=XE8fvtS2ZzU:IiKMIh_BIis:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/XE8fvtS2ZzU" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 29 Jun 2009 12:00:00 EST</pubDate><guid isPermaLink="false">282</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=598&amp;title=SEO_First_Steps_Prioritizing_SEO_Tasks</feedburner:origLink></item><item><title>Power of the Brand - $99 Apple iPhone</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/wFg7p3bTjU8/blog.aspx</link><description>&lt;p&gt;&lt;img style="float: left; margin-right: 10px; margin-bottom: 20px;" src="/Uploads/Gallery/blog/apple_ad.jpg" border="0" width="180" height="173" /&gt;Only 5% of mobile users in the U.S. currently us an iphone (&lt;a href="http://adage.com/digital/article?article_id=137165"&gt;Ad Age&lt;/a&gt;). But with Apple reducing the price to $99, the number of users and thus Apple's revenue should increase. Great news for the mobile marketing industry and the late bloomers to the smartphone market. Apple is also releasing the iphone 3G S so if you are the hard core tech saavy consumer, you can still get the latest and greatest Apple product. So, Apple has the top of their consumer chain covered with their most loyal users and is appealing to the bottom of the pyramid for those consumers that purchase based on price.&lt;/p&gt;
&lt;p&gt;But what effect is this going to have on all the consumers in the middle? The ones that are in between the early adapters and late comers, the consumers that buy Apple because its a good value but still cool. What effect is the price slashing and going mainstream going to have on the overall brand image? Will Apple be able to continually innovate and come up with the newest technology with the "coolest" design to keep people coming back to what attracted them in the first place? I'm not sure - but I think it's a valuable question for Apple to take a step back and make sure they are not selling out.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wFg7p3bTjU8:wGqWr8G835c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wFg7p3bTjU8:wGqWr8G835c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wFg7p3bTjU8:wGqWr8G835c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=wFg7p3bTjU8:wGqWr8G835c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wFg7p3bTjU8:wGqWr8G835c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=wFg7p3bTjU8:wGqWr8G835c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=wFg7p3bTjU8:wGqWr8G835c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/wFg7p3bTjU8" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 11 Jun 2009 12:00:00 EST</pubDate><guid isPermaLink="false">280</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=594&amp;title=Power_of_the_Brand__99_Apple_iPhone</feedburner:origLink></item><item><title>A Quick Look at Bing! The new search engine from Microsoft.</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/q2vbnuswTQE/blog.aspx</link><description>&lt;h2&gt;It Has a Fancy UI&lt;/h2&gt;
&lt;p&gt;Yeah, so does ask jeeves....and that's no google killer either. It is a differentiator though, and that is what will be needed to challenge google. The welcome screen is flashy, and uses beautiful imagery in place of google's stark white screen. That's just eye candy though. The fit and finish of everything is good, live maps is well integrated, and the AJAXified interface is generally implemented tastefully. Assuming the Bing! development staff are no strangers to IE, I would also assume that the site degrades rather gracefully (ba-doom-ching).&lt;/p&gt;
&lt;h2&gt;Media Searches&lt;/h2&gt;
&lt;p&gt;This is the best part of Bing. I tested out it's video seach using the term "&lt;a href="http://www.bing.com/videos/search?q=devo&amp;amp;qpvt=devo&amp;amp;FORM=Z7FD7" target="_blank"&gt;Devo&lt;/a&gt;". The video results are pretty strong, culling videos from various sources (youtube, myspace, etc) and presenting them in a space efficient manner using thumbnails and filterable by length, screen size, resolution and source. On mouse-over of each result, it plays an excerpt of the video with sound. This is awesome! Microsoft, you win this round. While google's video search is effective, it's result presentation and inability to preview inline is pretty weak.&lt;/p&gt;
&lt;p&gt;Another thing that struck me as slick was the other types of DEVO related searches that were presented, including Images, Lyrics, Songs, Albums, Fan Clubs and Interviews. Not too shabby. I wouldn't mind seeing a product search tossed in there as well for the next time I need to find the best price on a new &lt;a href="http://www.devohat.com/" target="_blank"&gt;energy dome&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Farecast Integration&lt;/h2&gt;
&lt;p&gt;Since long before Microsoft purchased it, I have been a fan of the travel site &lt;a href="http://www.farecast.com" target="_blank"&gt;farecast&lt;/a&gt;. As far as buying plane tickets goes, farecast always finds the best price, IMHO. It also offers some cool statistical analysis tools that help you to predict the best time to buy your tickets. Farecast is a big asset and will surely help Bing! get exposure. On a small technical note, although seemlessly integrated, it appears that the original farecast code base (presumably done with Java STRUTS) is intact telling from the ".do" file extensions.&lt;/p&gt;
&lt;h2&gt;Technology&lt;/h2&gt;
&lt;p&gt;At Delphic Sage, we are big fans of the Lucene project. Search is a big, complicated ball of wax and we have long used the open source lucene project to offer our clients sophisticated search functionality without having to reinvent the wheel. Microsoft had the same idea, and built Bing! on Hadoop, which is part of the Lucene project dedicated to the processing of huge amounts of data on cheap hardware.&amp;nbsp; Microsoft also made large code contributions back to the project, which will surely help win over some hearts in the open source community.&lt;/p&gt;
&lt;h2&gt;Actual Search Results&lt;/h2&gt;
&lt;p&gt;I'll be honest...time will only tell on this one. I could write up a comparison of some sample searches between Bing and Google but most terms are so hit or miss and the sample size would be so small that it would be pointless. It's totally unscientific, but I base my google allegiance on a warm and fuzzy gut feeling that I have developed from using google successfully to solve problems day in and day out over many years.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I expected Bing! to be crap, but it seems pretty good, and it seems to be better than google at a few things (video, at least). Hopefully they keep improving, as a little competition in the search engine segment would surely be a good thing. How the tables do turn.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=q2vbnuswTQE:wDHSJlK66T8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=q2vbnuswTQE:wDHSJlK66T8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=q2vbnuswTQE:wDHSJlK66T8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=q2vbnuswTQE:wDHSJlK66T8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=q2vbnuswTQE:wDHSJlK66T8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=q2vbnuswTQE:wDHSJlK66T8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=q2vbnuswTQE:wDHSJlK66T8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/q2vbnuswTQE" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Mon, 01 Jun 2009 12:00:00 EST</pubDate><guid isPermaLink="false">279</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=592&amp;title=A_Quick_Look_at_Bing_The_new_search_engine_from_Microsoft</feedburner:origLink></item><item><title>Review for the G1's Shazam and ShopSavvy Applications </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/6hugbf4Y6xo/blog.aspx</link><description>&lt;h2&gt;Shazam&lt;/h2&gt;
&lt;p&gt;&lt;img style="float: right; margin-left: 10px;" src="/Uploads/Gallery/blog/logo_shazam.gif" border="0" width="153" height="153" /&gt;Basically, you can hold the phone up to anything playing relatively clear music to let the phone analyze the music coming out of the speaker. After about 20 seconds, the phone will tell you who the artist is, the name of the song, what record the song is from... where you can purchase the music (&lt;a href="http://www.amazon.com"&gt;Amazon&lt;/a&gt;) and if available, the artist &lt;a href="http://www.myspace.com"&gt;MySpace&lt;/a&gt; page and &lt;a href="http://www.youtube.com"&gt;YouTube&lt;/a&gt; links. This search is saved/tagged and is able to be called upon later.&amp;nbsp; SHAZAM!&lt;/p&gt;
&lt;h3&gt;Is this such a good thing?&lt;/h3&gt;
&lt;p&gt;My thought is that owning music has become extremely easy and the days of searching through stacks of CD'S has come to an end.&amp;nbsp; One concern that comes to my mind is that the easier and more automated this act becomes, the less control we have, thus making music discovery a less personal experience. But hey, the quicker I can have access to an artist's information, the better for me and the artist (even if I have to sacrifice the thrill of the traditional hunt).&lt;/p&gt;
&lt;p&gt;After familiarizing myself with the app I decided to test the depth of its musical knowledge.&lt;/p&gt;
&lt;h3&gt;The Results&lt;/h3&gt;
&lt;p&gt;All major label releases, that I tested, were found... including: The Beatles, The Cars, Kanye West, Patti Smith...&lt;/p&gt;
&lt;p&gt;I went a level deeper and checked out some indie releases... Against Me!, At the Drive-In, Neutral Milk Hotel, Operation Ivy, Tokyo Police Club... All found!&lt;/p&gt;
&lt;p&gt;Music that I thought would be too obscure was found too. Including: Old defunct punk and thrash bands, crummy UK Twee bands I got from my coworker, and even some DJ Mixes (though the app would get confused and sometimes recognized the sample as the original track, or visa-versa).&lt;br /&gt;&lt;br /&gt;The only tracks not found were local bands, tour releases, live shows and demos. Surprising...? Not at all. I would have been a bit scared/confused if an application I downloaded onto my cell phone could recognize and ID the band I was in when I was 17.&lt;/p&gt;
&lt;p&gt;Great job Shazam! Even if this isn't applicable to your life, it sure is cool.&lt;/p&gt;
&lt;h2&gt;ShopSavvy&lt;/h2&gt;
&lt;p&gt;&lt;img style="float: right; margin-left: 15px; margin-bottom: 15px;" src="/Uploads/Gallery/blog/g1_pic.jpg" border="0" width="301" height="199" /&gt;What this application does is scan a barcode though the use of your built-in camera, finds the product just scanned, tells you the cheapest price on the internet, the closest place you can purchase this item and gives you directions to that place or provides a link to the online location (normally &lt;a href="http://www.ebay.com"&gt;Ebay&lt;/a&gt; or &lt;a href="http://www.amazon.com"&gt;Amazon&lt;/a&gt;) with pretty incredible speed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Idea is that you can connect yourself to a gigantic wealth of information while you're on the go. Access to information can make you a smarter and more efficient consumer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Picture this: You are at the mall, you would like to purchase a new food processor but you're not too sure what to get. Well, what I would do is... find the closest appliance store, locate the food processor in my price range, scan it, read about it... see if I can get it cheaper somewhere else and continue scanning and looking till the proper bargain is found. If the reviews are bad... move along. This is where I feel like the application becomes powerful. Now we have the ability to ask an unbiased, non-salesperson the proper question about the product in real time... " What makes this one better then the one that's cheaper next-door?", "I just read that carrots really jam this thing up, what's the deal with that? " &lt;br /&gt;&lt;br /&gt;This app is quite useful. There haven't been many barcodes where the product comes up as "Unknown", so it has proved to be quite reliable. It is also fun to play "Price is Right" with it. &lt;br /&gt;&lt;br /&gt;Within the new realm of mobile application possibilities we are gaining a new level of connectivity with the rest of the world from anywhere we can get a cell signal. Ultimately, our phones are being recontextualized to be all-in-one tools of consumerism, entertainment, mapping and communication. With all these amazing technological phone advancements, I'm interested to see how a continually progressive tool will affect our future. Learn more about mobile technology and mobile marketing with our latest &lt;a href="/default.aspx?p=1701"&gt;whitepaper&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;(These applications can be downloaded to an IPhone as well.)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6hugbf4Y6xo:YnE-AKk0Cu0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6hugbf4Y6xo:YnE-AKk0Cu0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6hugbf4Y6xo:YnE-AKk0Cu0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6hugbf4Y6xo:YnE-AKk0Cu0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6hugbf4Y6xo:YnE-AKk0Cu0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=6hugbf4Y6xo:YnE-AKk0Cu0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=6hugbf4Y6xo:YnE-AKk0Cu0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/6hugbf4Y6xo" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Charlie)</author><pubDate>Thu, 21 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">145</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=582&amp;title=Review_for_the_G1s_Shazam_and_ShopSavvy_Applications_</feedburner:origLink></item><item><title>Customizing A Twitter Page Design</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/V2PxhlhGIqk/blog.aspx</link><description>&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/dstwitter_screenshot.jpg" border="0" width="530" height="374" /&gt;&lt;/p&gt;
&lt;p&gt;There are technical limitations to be mindful of though. Normally web designers and developers have the liberty to position the background image in a variety of ways (left, right, center, specifying coordinates of the position, opacity level, repeating or non-repeating, "x" or "y" repeat) but the only thing Twitter lets you do is repeat it or "no-repeat" it. And there's no positioning at all so it can only sit left aligned. The limitations are fine but it would be nice to have a little more flexibility on the behavior. Twitter folks, can we get some alignment styles or x-y-repeat happening? Thats pretty simple, no? So other than that, other things to be mindful of are screen resolutions. When designing, try to make sure your design looks ok in a smaller browser window. Ours doesnt hold up too well on the small screens, but we kinda pick our battles nowadays and we know most of our audience is viewing on larger monitors. So make sure you know who is following you!&lt;/p&gt;
&lt;p&gt;All this being said about our new look, we may find ourselves changing the look and feel often since its so easy to implement. Look out for frequent updates.&lt;/p&gt;
&lt;p&gt;Check it out and follow us! &lt;a href="http://twitter.com/DelphicSage"&gt;http://twitter.com/DelphicSage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&amp;nbsp;&lt;/strong&gt; For the design direction we browsed the internet for some inspiration. There's not that many showcase galleries out there. Tons of sites just give away backgrounds as "twitter backgrounds" but none really feature the usage as nicely as this site. Some clever approaches here!:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitterbackgroundsgallery.com/" target="_blank"&gt;http://twitterbackgroundsgallery.com/&lt;/a&gt;&lt;/p&gt;
&lt;p class="small"&gt;&lt;em&gt;&lt;strong&gt;ALSO:&amp;nbsp;&lt;/strong&gt; No twitter bird was harmed in the creation of the graphic for this post. Only organic soy-based dyes were used to colorize the bird.&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=V2PxhlhGIqk:X2Fgi4u37BM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=V2PxhlhGIqk:X2Fgi4u37BM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=V2PxhlhGIqk:X2Fgi4u37BM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=V2PxhlhGIqk:X2Fgi4u37BM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=V2PxhlhGIqk:X2Fgi4u37BM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=V2PxhlhGIqk:X2Fgi4u37BM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=V2PxhlhGIqk:X2Fgi4u37BM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/V2PxhlhGIqk" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 20 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">276</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=581&amp;title=Customizing_A_Twitter_Page_Design</feedburner:origLink></item><item><title>KFC Fiasco measured by social media</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/byu1-m7RCc4/blog.aspx</link><description>&lt;p&gt;Ad Age measures the buzz around the promotion through social media, "According to Zeta Interactive, which monitors blog chatter, KFC generally popped up in about 538 blog posts daily, with 72% of mentions positive. During the promotion, that number soared to 1,319 mentions, 89% of which were positive. But cutting the cord on Thursday had a immediate negative effect, with 772 posts. Negative ratings shot up, to 33%". KFC begs to differ on the results. But positive or negative, Ad Age is running a story on May 11th about a promotion that started only a week before, May 4th, and already had real time results to back up their story. Zeta Interactive monitored blog response, but the same analytics can apply to &lt;a href="http://www.twitter.com"&gt;twitter&lt;/a&gt; updates and &lt;a href="http://www.facebook.com"&gt;facebook&lt;/a&gt; updates. As an experiment, I tried to use twitter's advanced &lt;a href="http://search.twitter.com"&gt;search&lt;/a&gt; tool, typed in keyword KFC, and analyzed the positive and negative responses from May 4th until today (May 14th). Twitter froze on me so I was unable to get past May 8th. So, the system is not perfect yet. However, the groudwork of obtaining real-time results on consumer opinions has been laid. For the small-mid size company that may not be able to hire a social monitoring company like Zeta Interactive, an in-house marketing person can monitor real time results too on a much smaller scale. Keep in mind, twitter users are a small segment of the population and are more likely to be a "creator" or&amp;nbsp; "opinion leader" and might not reflect the population as a whole. However, if you monitor the chatter, the general trending is definitely a great way to gauge how well a promotion, sponsorship, or any other marketing program is doing. Some will argue that generating buzz is always a good thing, negative or positive...I guess we'll find out how KFC does over the next few weeks.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=byu1-m7RCc4:hKNWHNpAQGE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=byu1-m7RCc4:hKNWHNpAQGE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=byu1-m7RCc4:hKNWHNpAQGE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=byu1-m7RCc4:hKNWHNpAQGE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=byu1-m7RCc4:hKNWHNpAQGE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=byu1-m7RCc4:hKNWHNpAQGE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=byu1-m7RCc4:hKNWHNpAQGE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/byu1-m7RCc4" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 14 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">273</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=564&amp;title=KFC_Fiasco_measured_by_social_media</feedburner:origLink></item><item><title>Senior Citizens Using Social Media</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/06oidida6jM/blog.aspx</link><description>&lt;p&gt;The article located &lt;a href="http://www.cnn.com/2009/TECH/04/13/social.network.older/index.html?iref=t2test_techmon" target="_blank" title="Seniors Use Social Media"&gt;here&lt;/a&gt; discussed seniors getting involved with Facebook specifically.&amp;nbsp; Those numbers are based on a Pew Internet &amp;amp; American Life Project's December 2008 survey.&lt;/p&gt;
&lt;p&gt;While that doesn't sound like a game-change, if you look at the last 6 months alone, it is phenomenal. More importantly, consider the last two weeks that saw Oprah begin tweeting (using Twitter.com).&amp;nbsp; That's fairly important when you consider that Oprah's largest demographic is...women that are 55 and older.&lt;/p&gt;
&lt;p&gt;In fact, an article from MSNBC about the upcoming elections stated, "...3.7 million people age 55 and older watch Oprah, and 2.7 million of these individuals are women. Eleven percent of all older black women watch Oprah, and 7% of all older white women watch the show everyday." I will be keeping my eye on Twitter, but given Oprah's endorsement and use targeting that demographic, I can't help but think we are going to see large strides.&lt;/p&gt;
&lt;p&gt;Needless to say, I won't be paying for the next lunch out. But I will be engaging seniors on behalf of clients. Will you?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=06oidida6jM:uGwf3yH6qZ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=06oidida6jM:uGwf3yH6qZ4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=06oidida6jM:uGwf3yH6qZ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=06oidida6jM:uGwf3yH6qZ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=06oidida6jM:uGwf3yH6qZ4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=06oidida6jM:uGwf3yH6qZ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=06oidida6jM:uGwf3yH6qZ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/06oidida6jM" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 14 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">270</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=569&amp;title=Senior_Citizens_Using_Social_Media</feedburner:origLink></item><item><title>Social Media Presentation</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/OHksEHlwA0Q/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OHksEHlwA0Q:g78KqV_Jz2M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OHksEHlwA0Q:g78KqV_Jz2M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OHksEHlwA0Q:g78KqV_Jz2M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=OHksEHlwA0Q:g78KqV_Jz2M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OHksEHlwA0Q:g78KqV_Jz2M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=OHksEHlwA0Q:g78KqV_Jz2M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=OHksEHlwA0Q:g78KqV_Jz2M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/OHksEHlwA0Q" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 13 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">266</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=560&amp;title=Social_Media_Presentation</feedburner:origLink></item><item><title>Site Launch: American Executive Centers</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/dR23movoOp0/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dR23movoOp0:P7yIdmUlccs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dR23movoOp0:P7yIdmUlccs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dR23movoOp0:P7yIdmUlccs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=dR23movoOp0:P7yIdmUlccs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dR23movoOp0:P7yIdmUlccs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=dR23movoOp0:P7yIdmUlccs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=dR23movoOp0:P7yIdmUlccs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/dR23movoOp0" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Thu, 07 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">254</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=559&amp;title=Site_Launch_American_Executive_Centers</feedburner:origLink></item><item><title>It's time for your web hosting to grow up - Virtual Private Servers</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/VZevECVWoOg/blog.aspx</link><description>&lt;h2&gt;User Interfaces&lt;/h2&gt;
&lt;p&gt;Shared hosting environments are plagued with horrible web interfaces. Either you can't find what your looking for or when you try to do something you're told it will be added shortly and that you will get an email when its done. Virtual Private Servers are like Dedicated Servers in terms of user interface. You simply use Remote Destop to get into them andyou'll have access to the Windows Desktop of the server - so it's like your standing right there in the server room. You'll also have Administrator level permissions, so you'll be able to install whatever software you fancy. If that's not friendly enough for you, many VPS providers offer &lt;a href="http://www.parallels.com/products/plesk/" target="_blank"&gt;Plesk&lt;/a&gt; which is made by &lt;a href="http://www.parallels.com/" target="_blank"&gt;Paralells&lt;/a&gt;, the same people who make &lt;a href="http://www.parallels.com/products/desktop/" target="_blank"&gt;Windows run on Mac OSX&lt;/a&gt;.&amp;nbsp; I could probably do a whole post on Plesk but it offers a ton of functionality from your web browser and its all instant. You don't have to wait for Administrators to install PHP, all you have to do is check a box and hit submit. Plesk can handle 90% of your standard setup and administrative tasks, everything from Email to DNS to Databases and it's &lt;em&gt;so &lt;/em&gt;much faster than having an administrator (or IT goon) do it for you.&lt;/p&gt;
&lt;h2&gt;Other Benefits&lt;/h2&gt;
&lt;p&gt;Many of the "Extra's" that shared hosting environments nickle and dime you for are now free. You can setup sub-domains and aliases, an addition $5-$10 per month on shared hosting, for free on VPS. Need to run your company's Website and Intranet? All you have to do is add another website in IIS or Plesk or Apache, no additional accounts or fees.&amp;nbsp;&amp;nbsp; Have you ever needed to run applications full trust in ASP.NET? I have, and let me tell you that if your shared host isn't set up for it, they aren't going to change for you. Need to install a hotfix from Microsoft so that your David Hasselhoff fan site can generate ASCII art? That's cool, you can install it yourself and you won't even need to call another hemisphere for support. Have you ever asked a shared host for event logs? You don't even need to ask anymore, VPS gives you the freedom to login and look at them.&lt;/p&gt;
&lt;h2&gt;Tips&lt;/h2&gt;
&lt;p&gt;If you need a version of Sql Server 2005 that isn't Express, your going to have to pay for it. Some hosts offer to host your databases on a shared database server but these are often slow and you still can't get all of the control that you could otherwise have with dedicated. So you think this might mean that you can't have Full-Text Indexes or Scheduled Tasks but I've got a few tricks up my sleeve.&amp;nbsp; The most important is &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=4C6BA9FD-319A-4887-BC75-3B02B5E48A40&amp;amp;displaylang=en" title="Microsoft SQL Server 2005 Express Edition with Advanced Services"&gt;Microsoft SQL Server 2005 Express Edition with Advanced Services&lt;/a&gt;. This FREE version of Sql Server 2005 even supports Full-Text Indexing so that you use advanced search algorithms and make use of relevance measures. The interface to work with them has been removed but it's not that bad to manage these catalogs using a script.&amp;nbsp; So, you might be wondering how your going to rebuild your indexes without the interface or schedule backups if you cant use Scheduled Tasks.&amp;nbsp; I like to create a batch script that runs a sql query to do these things.&lt;br /&gt;&lt;br /&gt;The sql script could be as simple as this:&lt;/p&gt;
&lt;div style="background-color: #dde7f0;"&gt;USE [DatabaseName] &lt;br /&gt;EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full'; &lt;br /&gt;&lt;br /&gt;BACKUP DATABASE DatabaseName&lt;br /&gt;TO DISK = 'C:\Daily_DatabaseName.bak' &lt;br /&gt;WITH FORMAT;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;First the script is populating the 'Cat_Desc' full-text catalog, then its creating a backup of the database. If you save this to a file(SqlBatch.sql ), you can then write a batch to execute it.&lt;/p&gt;
&lt;p&gt;To create the batch, just open up notepad and save as a .bat&lt;/p&gt;
&lt;div style="background-color: #dde7f0;"&gt;osql -E -S localhost\sqlexpress -i SqlBatch.sql&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;The batch will look something like this, your sql server location [localhost\sqlexpress] and file location [SqlBatch.sql] may vary. Just save this into the same directory as the sql script (SqlBatch.sql) and you should be ready to test it. Just double click the batch to run it, then check to see if C:\Daily_DatabaseName.bak was updated. Assuming that everything is working fine, you just need to schedule this batch to run automatically. Go to Start &amp;gt;&amp;gt; Control Panel &amp;gt;&amp;gt; Scheduled Tasks &amp;gt;&amp;gt; Add Scheduled Task . Here you just need to select the batch file that you just created and create the schedule. &lt;br /&gt;&lt;br /&gt;So I hope this post has encouraged you to look at some options outside of Dedicated and Shared hosting. Just drop a comment if you have any questions.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=VZevECVWoOg:9GHFLUz8JCI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=VZevECVWoOg:9GHFLUz8JCI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=VZevECVWoOg:9GHFLUz8JCI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=VZevECVWoOg:9GHFLUz8JCI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=VZevECVWoOg:9GHFLUz8JCI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=VZevECVWoOg:9GHFLUz8JCI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=VZevECVWoOg:9GHFLUz8JCI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/VZevECVWoOg" height="1" width="1"/&gt;</description><author>info@delphicsage.com ()</author><pubDate>Wed, 06 May 2009 12:00:00 EST</pubDate><guid isPermaLink="false">255</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=557&amp;title=Its_time_for_your_web_hosting_to_grow_up__Virtual_Private_Servers</feedburner:origLink></item><item><title>Site Launch: Devencore NKF</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/CtMhnYl1sLo/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CtMhnYl1sLo:4o36azLA1Xo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CtMhnYl1sLo:4o36azLA1Xo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CtMhnYl1sLo:4o36azLA1Xo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CtMhnYl1sLo:4o36azLA1Xo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CtMhnYl1sLo:4o36azLA1Xo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CtMhnYl1sLo:4o36azLA1Xo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CtMhnYl1sLo:4o36azLA1Xo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/CtMhnYl1sLo" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Kevin)</author><pubDate>Fri, 24 Apr 2009 12:00:00 EST</pubDate><guid isPermaLink="false">231</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=525&amp;title=Site_Launch_Devencore_NKF</feedburner:origLink></item><item><title>Get Your Skate On</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Cz0pTpFgCZA/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Cz0pTpFgCZA:yycUuX5ASQ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Cz0pTpFgCZA:yycUuX5ASQ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Cz0pTpFgCZA:yycUuX5ASQ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Cz0pTpFgCZA:yycUuX5ASQ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Cz0pTpFgCZA:yycUuX5ASQ0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Cz0pTpFgCZA:yycUuX5ASQ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Cz0pTpFgCZA:yycUuX5ASQ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Cz0pTpFgCZA" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Cliff H)</author><pubDate>Tue, 14 Apr 2009 12:00:00 EST</pubDate><guid isPermaLink="false">219</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=522&amp;title=Get_Your_Skate_On</feedburner:origLink></item><item><title>A Quick Note on Blocking the Digg Bar</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/djVOMp9-9bk/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=djVOMp9-9bk:cRMWjsYxkio:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=djVOMp9-9bk:cRMWjsYxkio:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=djVOMp9-9bk:cRMWjsYxkio:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=djVOMp9-9bk:cRMWjsYxkio:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=djVOMp9-9bk:cRMWjsYxkio:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=djVOMp9-9bk:cRMWjsYxkio:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=djVOMp9-9bk:cRMWjsYxkio:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/djVOMp9-9bk" height="1" width="1"/&gt;</description><author>info@delphicsage.com (SMercer)</author><pubDate>Mon, 13 Apr 2009 12:00:00 EST</pubDate><guid isPermaLink="false">218</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=518&amp;title=A_Quick_Note_on_Blocking_the_Digg_Bar</feedburner:origLink></item><item><title>Delphic Sage Web Analytics White Paper</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/SE4VVizyoEc/blog.aspx</link><description>&lt;p&gt;&lt;a href="/default.aspx?p=1423"&gt;Read more about our analytics white paper.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Didn't receive an email notification about our white paper? &lt;a href="/default.aspx?p=1423"&gt;Sign up now. &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=SE4VVizyoEc:xXd21w750cc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=SE4VVizyoEc:xXd21w750cc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=SE4VVizyoEc:xXd21w750cc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=SE4VVizyoEc:xXd21w750cc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=SE4VVizyoEc:xXd21w750cc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=SE4VVizyoEc:xXd21w750cc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=SE4VVizyoEc:xXd21w750cc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/SE4VVizyoEc" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Tania R)</author><pubDate>Thu, 09 Apr 2009 12:00:00 EST</pubDate><guid isPermaLink="false">217</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=515&amp;title=Delphic_Sage_Web_Analytics_White_Paper</feedburner:origLink></item><item><title>Newsletters... Get your email Newsletters...</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/5VqD7b5Vyug/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5VqD7b5Vyug:g89RGFliIf0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5VqD7b5Vyug:g89RGFliIf0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5VqD7b5Vyug:g89RGFliIf0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=5VqD7b5Vyug:g89RGFliIf0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5VqD7b5Vyug:g89RGFliIf0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5VqD7b5Vyug:g89RGFliIf0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=5VqD7b5Vyug:g89RGFliIf0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/5VqD7b5Vyug" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Cliff H)</author><pubDate>Wed, 08 Apr 2009 12:00:00 EST</pubDate><guid isPermaLink="false">214</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=513&amp;title=Newsletters_Get_your_email_Newsletters</feedburner:origLink></item><item><title>Augmented Reality - New Wave of Commercial Advertising?!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/qwX8MccZ04Y/blog.aspx</link><description>&lt;p&gt;&lt;a href="http://www.vimeo.com/3927618" target="_blank"&gt;&lt;img src="/Uploads/Gallery/blog/GE_Augmented_Reality_Demo.png" border="0" width="505" height="379" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are some quick and easy steps to try it yourself:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Print out the marker found &lt;a href="http://ge.ecomagination.com/smartgrid/ar/printme.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Turn on your webcam.&lt;/li&gt;
&lt;li&gt;Launch either Wind Turbine or Solar Energy Augment Reality on &lt;a href="http://ge.ecomagination.com/smartgrid/#/augmented_reality"&gt;GE's site.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Face marker at webcam and you're off and running.&lt;/li&gt;
&lt;li&gt;Move, twist, and turn the marker to achieve desired results. (Optional -&amp;nbsp; With the wind turnbine, you can blow into your computer's mic and change the speeds of the propellors.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There are definitely some positive and negatives that come to my mind when working with this type of ad. I compiled a list below:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Positive&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Engages the User to interact with the ad&lt;/li&gt;
&lt;li&gt;Promotes use of alternative energy&lt;/li&gt;
&lt;li&gt;Can and has been used for different realms of advertising             
&lt;ul&gt;
&lt;li&gt;Automotive - &lt;a href="http://www.youtube.com/watch?v=dBser6_gToA"&gt;Mini Cooper&lt;/a&gt; and &lt;a href="http://www.youtube.com/watch?v=C6Ayc5Tb9vI"&gt;Nissan Cube&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Gaming - &lt;a href="http://www.crunchgear.com/2008/12/22/watch-augmented-reality-figure-cyber-maid-alice-in-action-2-videos/"&gt;Geisha Entertainment Tokyo&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Mobile - &lt;a href="http://tonchidot.com/Sekai_Camera.html"&gt;Sekai Camera&lt;/a&gt; for IPhone&lt;/li&gt;
&lt;li&gt;Toy -&amp;nbsp; &lt;a href="http://www.crunchgear.com/2008/10/22/video-gallery-watch-the-augmented-reality-tuttuki-bako-box-in-action/"&gt;Bandai Japan Tuttuki Box&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Sports Collectibles - &lt;a href="http://www.viddler.com/explore/engadget/videos/319/"&gt;Topps Live 3D Baseball Card&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Marketed through YouTube to encapsulate larger audience&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The Negative&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forces you to print a piece of paper for a relatively "Green" ad&lt;/li&gt;
&lt;li&gt;Can't be displayed on older computers that do not have the appropriate software&lt;/li&gt;
&lt;li&gt;Need a pretty quick/reliable computer&lt;/li&gt;
&lt;li&gt;Took a long while to utilize a fairly old technology for commercial purposes&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Who knows where this will take us in the future, but all I know is there is boundless entertainment for the current augmented reality.&amp;nbsp; I would love to see it on a much larger scale some day, probably somewhere on twitter.&lt;/p&gt;
&lt;p&gt;Post was inspired by the following articles:&lt;br /&gt;&lt;a href="http://www.techcrunch.com/2009/03/20/ge-uses-digital-hologram-to-advertize-windmills/"&gt;http://www.techcrunch.com/2009/03/20/ge-uses-digital-hologram-to-advertize-windmills/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://thefutureofads.com/2009/02/27/ge-plugs-into-the-smart-grid-with-augmented-reality/"&gt;http://technology.todaysbigthing.com/2009/03/09?utm_source=newsletter&amp;amp;utm_me&lt;br /&gt;http://thefutureofads.com/2009/02/27/ge-plugs-into-the-smart-grid-with-augmented-reality/&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qwX8MccZ04Y:UN9Bf3nwGGw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qwX8MccZ04Y:UN9Bf3nwGGw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qwX8MccZ04Y:UN9Bf3nwGGw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qwX8MccZ04Y:UN9Bf3nwGGw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qwX8MccZ04Y:UN9Bf3nwGGw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qwX8MccZ04Y:UN9Bf3nwGGw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qwX8MccZ04Y:UN9Bf3nwGGw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/qwX8MccZ04Y" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Kevin)</author><pubDate>Tue, 31 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">204</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=503&amp;title=Augmented_Reality__New_Wave_of_Commercial_Advertising</feedburner:origLink></item><item><title>How to Use Twitter for Business</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/CxauqyYOUF4/blog.aspx</link><description>&lt;h3&gt;&lt;a href="http://search.twitter.com/advanced"&gt;Twitter Advanced Search&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Twitter has an &lt;a href="http://search.twitter.com/advanced"&gt;advanced search&lt;/a&gt; function that lets you research what people are "tweeting" about in your area. You can search for your brand, your competitors brand, or even your business category withing x miles from your location. So if you are tweeting about your web development needs in the Philadelphia area, Delphic Sage may start following you! The great thing about twitter is that you can provide a business solution to a customer in need in real time. It's one of&amp;nbsp; the easiest targeted sales lead you can make online.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.twilert.com/"&gt;Twilert&lt;/a&gt; / RSS Feeds&lt;/h3&gt;
&lt;p&gt;Similar to the Twitter Advanced Search, &lt;a href="http://www.twilert.com/"&gt;twilert&lt;/a&gt; allows you to set up email updates of tweets that include your brand name. For example, if you were a paper service company and Staples was a major competitor, you can set up a twilert for "Staples" within 25 miles of New York City. So anytime anyone mentions Staples, good or bad, you can follow up with them via twitter and gain a potential sales lead. On the flip side, if you are Staples customer service dept., then you can track to see what people are saying about Staples. It's reputation management real time by real customers. If you respond to those disgruntled customers, then you are taking customer service to the next level. Both Dell (&lt;a href="http://twitter.com/delloutlet"&gt;http://twitter.com/delloutlet&lt;/a&gt;) &amp;amp; Comcast (&lt;a href="http://twitter.com/comcastcares"&gt;http://twitter.com/comcastcares&lt;/a&gt;) have been using twitter to help monitor brand reputation and open up customer service channels. An alternative to a service like twilert is to set up RSS feeds of all your searches. Using the RSS function can help you determine useful content through your RSS feeder without having to do the same search all the time.&lt;/p&gt;
&lt;p&gt;For a more thorough exploration of how Delphic Sage can help you utilize social marketing tools, including twitter, please visit the contact us section. And follow our tweets: &lt;a href="http://twitter.com/delphicsage"&gt;http://twitter.com/delphicsage&lt;/a&gt; or &lt;a href="http://twitter.com/tradocaj"&gt;http://twitter.com/tradocaj&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This post is based on the following blogs/articles:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.forrester.com/groundswell/2009/03/twitter-is-a-5.html"&gt;http://blogs.forrester.com/groundswell/2009/03/twitter-is-a-5.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ducttapemarketing.com/blog/2009/03/25/mining-twitter-for-leads/"&gt;http://www.ducttapemarketing.com/blog/2009/03/25/mining-twitter-for-leads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/comcastcares"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CxauqyYOUF4:oWE_sRIiN1I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CxauqyYOUF4:oWE_sRIiN1I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CxauqyYOUF4:oWE_sRIiN1I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CxauqyYOUF4:oWE_sRIiN1I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CxauqyYOUF4:oWE_sRIiN1I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CxauqyYOUF4:oWE_sRIiN1I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CxauqyYOUF4:oWE_sRIiN1I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/CxauqyYOUF4" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Tania R)</author><pubDate>Thu, 26 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">205</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=507&amp;title=How_to_Use_Twitter_for_Business</feedburner:origLink></item><item><title>Philadelphia Systems Integrators Top 25</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/hp97UyVUeRA/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=hp97UyVUeRA:MttA4lQE1lw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=hp97UyVUeRA:MttA4lQE1lw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=hp97UyVUeRA:MttA4lQE1lw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=hp97UyVUeRA:MttA4lQE1lw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=hp97UyVUeRA:MttA4lQE1lw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=hp97UyVUeRA:MttA4lQE1lw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=hp97UyVUeRA:MttA4lQE1lw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/hp97UyVUeRA" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Tue, 24 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">202</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=502&amp;title=Philadelphia_Systems_Integrators_Top_25</feedburner:origLink></item><item><title>Facebook Etiquette</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/l5eQxN37E3w/blog.aspx</link><description>&lt;p&gt;For example, take my high school friend...once I accepted the friend request, I perused her pictures and learned that she still lived in the city, was single, and has a cat. I loved finding out what she had been up to over the past 10 years. Other than that, there's not much else I want or need to know. So when she started emailing me and asking me out for drinks, I discovered Facebook's dirty little secret...what happens when you're "facebook friend" wants to become real-life friends? Do you ignore their requests? They see you online, they know you've just updated your profile picture, they just read your latest post that you are going out on Friday night...now what?! We used to be able to ignore people's phone calls or say "oops you're email must have gone in my junk folder" but now that your network of "friends" can see everything you do via Facebook, you have inadvertently opened yourself up to being socially available all of the time.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/img_facebookchart2.gif" border="0" width="540" height="224" /&gt;&lt;/p&gt;
&lt;p&gt;How do we keep our friends in their neat little buckets - coworkers vs. neighbors vs. business colleagues vs. best friends? Thanks to Facebook, everyone is moshed together with the same classification of "friend". Don't even get me started on finding an ex on Facebook - it is like the modern equivalent of opening up pandora's box. Until Facebook lets us categorize our friends into the A-list or the B-list or the ex-list, I'm going to set my facebook post to say "Tania is unavailable..." and get back to work.&lt;/p&gt;
&lt;p&gt;Here are some articles that have inspired this post:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://adage.com/digitalnext/post?article_id=134673"&gt;http://adage.com/digitalnext/post?article_id=134673&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://experiencematters.criticalmass.com/2009/03/19/friendship-isnt-dead-the-strenghtening-of-loose-ties/#more-447"&gt;http://experiencematters.criticalmass.com/2009/03/19/friendship-isnt-dead-the-strenghtening-of-loose-ties/#more-447&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.realsimple.com/work-life/technology/communication-etiquette/facebook-friend-00000000010777/index.html"&gt;http://www.realsimple.com/work-life/technology/communication-etiquette/facebook-friend-00000000010777/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=l5eQxN37E3w:_qImJCSNQu4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=l5eQxN37E3w:_qImJCSNQu4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=l5eQxN37E3w:_qImJCSNQu4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=l5eQxN37E3w:_qImJCSNQu4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=l5eQxN37E3w:_qImJCSNQu4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=l5eQxN37E3w:_qImJCSNQu4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=l5eQxN37E3w:_qImJCSNQu4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/l5eQxN37E3w" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Tania R)</author><pubDate>Tue, 24 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">163</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=411&amp;title=Facebook_Etiquette</feedburner:origLink></item><item><title>Keyword Density for SEO | How important is it?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/twBetDHaUB8/blog.aspx</link><description>&lt;p&gt;1.       While a specific keyword density won't help you, over reaching on keyword density will certainly hurt you. If you over optimize, you will be seen as having spammy content. It is a lot easier to remember to stay under a %, say 12%, than to "use your best judgment."&lt;/p&gt;
&lt;p&gt;2.       There's a ton of terrible corporate copywriting out there, which talks about benefits, but never actually mentions the product. Keyword density at least keeps the use of the topic recurring.&lt;/p&gt;
&lt;p&gt;3.       Keyword density at least reminds copywriters to keep their subject prominent. Amazingly, even when a topic is used often, it gets lost deep into paragraphs. If the subject matter is worth writing, than mention it.&lt;/p&gt;
&lt;h3&gt;Readability, Copy, Keyword Density for SEO&lt;/h3&gt;
&lt;p&gt;You can certainly be reductionist and argue the summary of my points are that my recommendation of keyword density is a way to protect against poor copywriting, and in some respects it is. In fact, no matter how often you say to use your keywords intelligently and as a reader would normally expect to see them in your content, they are underrepresented. So, while saying "write better copy" might suffice for some of the reasoning I talk about the benefit of keyword density providing, I think it is fairly helpful to have a definitive method of properly executing copy. Especially because the content is one of the three pillars of SEO, but that is a post for another time.&lt;/p&gt;
&lt;p&gt;For the reasoning listed above, that is why our SEO writing guide groups keyword density near readability, and why it is in a writing guide in the first place, rather than under a "get some rankings" guide.&lt;/p&gt;
&lt;p&gt;If you care to check your readability and keyword density, here are some choices:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.addedbytes.com/tools/readability-score/" target="_blank" title="Readability Tool"&gt;Readability Tool&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.keyworddensity.com" target="_blank" title="Keyword Density Tool"&gt;Keyword Density Tool&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Happy copywriting...er...SEOing.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=twBetDHaUB8:S6gktf3Q9KI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=twBetDHaUB8:S6gktf3Q9KI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=twBetDHaUB8:S6gktf3Q9KI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=twBetDHaUB8:S6gktf3Q9KI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=twBetDHaUB8:S6gktf3Q9KI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=twBetDHaUB8:S6gktf3Q9KI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=twBetDHaUB8:S6gktf3Q9KI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/twBetDHaUB8" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Gregg)</author><pubDate>Fri, 20 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">201</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=495&amp;title=Keyword_Density_for_SEO__How_important_is_it</feedburner:origLink></item><item><title>Reasons to Consider Wordpress as a CMS for Simple Sites</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/_hoJ94kinLo/blog.aspx</link><description>&lt;h3&gt;Reasons to Consider Wordpress as a CMS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; &lt;/li&gt;
&lt;li&gt;Pages and Posts allow Wordpress to accommodate static and dynamic oriented content efficiently&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;Quick hit Themes that can be adjusted or developed from scratch into compelling visual designs&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;No heavy duty development required (usually). For us that means a small team that consists of Project Manager, Web Designer and Front-end Developer&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;Many plug-ins that make extending functionality insanely easy, especially for search engine optimization activities&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;Simple content management allows even novice Internet users to manage a site&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;Easy install, especially if you use a one-click install hosting provider&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;We love their rich text editor, &lt;a href="http://tinymce.moxiecode.com/" target="_blank" title="TinyMCE"&gt;TinyMCE&lt;/a&gt;&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;For whatever reason, Google seems to just love Wordpress sites&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;It's the engine for over million blogs and sites, so it's been around &lt;br /&gt; &lt;/li&gt;
&lt;li&gt;It has a vibrant Open Source community that actively contributes and participates&lt;/li&gt;
&lt;li&gt;Static web sites are a headache for client and agency alike&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Other Articles of Interest on Wordpress as a CMS&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.devlounge.net/publishing/things-to-consider-when-using-wordpress-as-a-cms" target="_blank" title="Things To Consider When Using WordPress as a CMS"&gt;Things To Consider When Using WordPress as a CMS&lt;/a&gt; - thoughts and considerations&lt;br /&gt; &lt;a href="http://codex.wordpress.org/User:Lastnode/Wordpress_CMS" target="_blank" title="Wordpress Codex"&gt;Wordpress Codex&lt;/a&gt; - practical execution tips&lt;a href="http://www.graphicdesignblog.co.uk/wordpress-as-a-cms-content-management-system/" target="_blank" title="Wordpress as a CMS - Content Management System"&gt;&lt;br /&gt;Wordpress as a CMS - Content Management System&lt;/a&gt; - examples and links to other articles&lt;a href="http://www.onlamp.com/pub/a/onlamp/2006/04/20/from-weblog-to-cms.html" target="_blank" title="From Weblog to CMS with WordPress"&gt;&lt;br /&gt;From Weblog to CMS with WordPress&lt;/a&gt; - a few suggested hacks&lt;a href="http://www.idesignstudios.com/blog/web-design/wordpress-as-cms/" target="_blank" title="How To Use WordPress As A Truly Customized CMS (Multiple Headers, Footers, Sidebars And More!)"&gt;&lt;br /&gt;How To Use WordPress As A Truly Customized CMS (Multiple Headers, Footers, Sidebars And More!)&lt;/a&gt; - practical steps and suggestions&lt;a href="http://wordpressgarage.com/wordpress-as-cms/10-plugins-that-will-make-wordpress-into-a-cms/" target="_blank" title="13 plugins that will make WordPress into a CMS"&gt;&lt;br /&gt;13 plugins that will make WordPress into a CMS&lt;/a&gt; - title says it all&lt;a href="http://css-tricks.com/video-screencasts/41-wordpress-as-a-cms/" target="_blank" title="#41: WordPress as a CMS"&gt;&lt;br /&gt;#41: WordPress as a CMS&lt;/a&gt; - video, thanks to &lt;a href="http://twitter.com/CraigFifield" target="_blank" title="@CraigFiflied"&gt;@CraigFifield&lt;/a&gt; for this&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;This is usually a hot button topic for those out there who have tried it. Tell us about your experience via Comments section below. &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_hoJ94kinLo:tWzUnVFutkk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_hoJ94kinLo:tWzUnVFutkk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_hoJ94kinLo:tWzUnVFutkk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_hoJ94kinLo:tWzUnVFutkk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_hoJ94kinLo:tWzUnVFutkk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=_hoJ94kinLo:tWzUnVFutkk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=_hoJ94kinLo:tWzUnVFutkk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/_hoJ94kinLo" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Fri, 13 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">194</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=476&amp;title=Reasons_to_Consider_Wordpress_as_a_CMS_for_Simple_Sites</feedburner:origLink></item><item><title>Philadelphia SEO Firms - A Short List</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/827N_TbOQ88/blog.aspx</link><description>&lt;table id="f05g" class="zeroBorder" border="0" cellspacing="0" cellpadding="3" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="50%" align="left" valign="top"&gt;&lt;a href="http://www.87interactive.com/" target="_blank" title="87 Interactive"&gt;87 Interactive&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.advancewebdesign.com/" target="_blank" title="Advance Design Interactive"&gt;Advance Design Interactive&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.annodyne.com" title="Annodyne"&gt;Annodyne&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.archer-group.com/" target="_blank" title="Archer Group"&gt;Archer Group&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.backemarketing.com/" title="Backe Digital Brand Marketing"&gt;Backe Digital Brand Marketing&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.cadient.com/" title="Cadient"&gt;Cadient&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.ddii.com/" title="D&amp;amp;D Interactive"&gt;D&amp;amp;D Interactive&lt;/a&gt; &lt;br /&gt;&lt;a href="/default.aspx?p=1561" target="_blank" title="Top Philadelphia SEO Agency | delphic sage"&gt;Delphic Sage&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.digitashealth.com/#/home" title="Digitas Health"&gt;Digitas Health&lt;/a&gt; &lt;br /&gt;&lt;a href="http://blog.dinkuminteractive.com/" target="_blank" title="Dinkum Interactive"&gt;Dinkum Interactive&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dmipartners.com/" target="_blank" title="DMi Partners"&gt;DMi Partners&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.goseopro.com" target="_blank" title="goSEOpro"&gt;goSEOpro&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.firstplacepositioning.com" target="_blank" title="First Place Positioning"&gt;First Place Positioning&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linkateer.com" target="_blank" title="Linkateer"&gt;Linkateer&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td width="50%" align="left" valign="top"&gt;&lt;a href="http://www.milestechnologies.com/" target="_blank" title="Miles Technology"&gt;Miles Technology&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.morningstarmultimedia.com" target="_blank" title="Morningstar Multimedia"&gt;Morningstar Multimedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mostlyweb.com" target="_blank" title="MostlyWeb"&gt;MostlyWeb&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.netplusmarketing.com/" target="_blank" title="NetPlus Marketing"&gt;NetPlus Marketing&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.unrealmarketing.com/" target="_blank" title="Unreal Marketing"&gt;Unreal Marketing&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.razorfish.com/" target="_blank" title="Razorfish"&gt;Razorfish&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thinkseer.com/" target="_blank" title="Seer Interactive"&gt;Seer Interactive&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.singularitydesign.com/" target="_blank" title="Singularity Design"&gt;Singularity Design&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.stargroup1.com/" title="Star Group"&gt;Star Group&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.tmxinteractive.com" target="_blank" title="TMX Interactive"&gt;TMX Interactive&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.voveo.com/" target="_blank" title="Voveo"&gt;Voveo Marketing Group&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.weblinc.com" target="_blank" title="Weblinc"&gt;Weblinc&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.whittmanhart.com" target="_blank" title="WhittmanHart Interactive"&gt;WhittmanHart Interactive&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;And yes, as anyone worth their weight will notice this page is slightly optimized for Philadelphia SEO. We tried not to go overboard, but it wouldn't do much good to make a list if organizations can't find it, now would it? And some of you even got a link from it.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Also of interest, there are a lot of firms in the top organic rankings with no physical presence in the area.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h3&gt;If We Missed Your Firm&lt;/h3&gt;
&lt;p&gt;As an interactive agency, we're a bit more familiar with folks in and around our space, so we probably missed some firms outside our direct competition - like advertising agencies. If we missed you, drop us a line and we'll add you the list (if you meet the criteria listed above).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=827N_TbOQ88:HgmcULaCaW0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=827N_TbOQ88:HgmcULaCaW0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=827N_TbOQ88:HgmcULaCaW0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=827N_TbOQ88:HgmcULaCaW0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=827N_TbOQ88:HgmcULaCaW0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=827N_TbOQ88:HgmcULaCaW0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=827N_TbOQ88:HgmcULaCaW0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/827N_TbOQ88" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Thu, 12 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">192</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=519&amp;title=Philadelphia_SEO_Firms__A_Short_List</feedburner:origLink></item><item><title>Site Launch: Gale International</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ATgjMpsXdhY/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ATgjMpsXdhY:tIZ7Io0K4vk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ATgjMpsXdhY:tIZ7Io0K4vk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ATgjMpsXdhY:tIZ7Io0K4vk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ATgjMpsXdhY:tIZ7Io0K4vk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ATgjMpsXdhY:tIZ7Io0K4vk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ATgjMpsXdhY:tIZ7Io0K4vk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ATgjMpsXdhY:tIZ7Io0K4vk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ATgjMpsXdhY" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Wed, 11 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">190</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=433&amp;title=Site_Launch_Gale_International</feedburner:origLink></item><item><title>Interactive Agency yes, Restaurant - uh, don't think so</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/JNFzUepEDO0/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNFzUepEDO0:vS4IUAcMbWc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNFzUepEDO0:vS4IUAcMbWc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNFzUepEDO0:vS4IUAcMbWc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=JNFzUepEDO0:vS4IUAcMbWc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNFzUepEDO0:vS4IUAcMbWc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=JNFzUepEDO0:vS4IUAcMbWc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=JNFzUepEDO0:vS4IUAcMbWc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/JNFzUepEDO0" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Sat, 07 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">189</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=428&amp;title=Interactive_Agency_yes_Restaurant__uh_dont_think_so</feedburner:origLink></item><item><title>New Client: Discover Jersey Arts </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/5qRUoniUHHc/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5qRUoniUHHc:AcFb3n3VMMQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5qRUoniUHHc:AcFb3n3VMMQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5qRUoniUHHc:AcFb3n3VMMQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=5qRUoniUHHc:AcFb3n3VMMQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5qRUoniUHHc:AcFb3n3VMMQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=5qRUoniUHHc:AcFb3n3VMMQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=5qRUoniUHHc:AcFb3n3VMMQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/5qRUoniUHHc" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Fri, 06 Mar 2009 12:00:00 EST</pubDate><guid isPermaLink="false">188</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=426&amp;title=New_Client_Discover_Jersey_Arts_</feedburner:origLink></item><item><title>Effectively Managing Social Media Status Updates</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/xgDLv8qy-2I/blog.aspx</link><description>&lt;h2&gt;Enter Tarpipe&lt;/h2&gt;
&lt;p&gt;Well, there are quite a few options out there. I've been playing around with &lt;a href="http://www.ping.fm"&gt;Ping.fm&lt;/a&gt; for example. What I've found with several of these however, is their lack of control down to the field level if you will. The one I've been playing around that affords much more control is &lt;a href="http://www.tarpipe.com"&gt;Tarpipe&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tarpipe allows you to create workflows that route data across social media applications. Once workflows are established, data (e.g. updates or bookmarks) is pushed through the workflow to the API's of the social media sites. The push is usually triggered by sending an email (tarpipe creates a custom email address for each workflow) or via a bookmarklet.&lt;/p&gt;
&lt;h2&gt;Here's an Example Tarpipe Workflow&lt;/h2&gt;
&lt;p&gt;So here's how the example above works. When I find an article I think is particularly interesting on the web. I click on a bookmarklet I have saved in my bookmarks. It pulls a dialog box (shown below) where I can enter a title, tags and the url.&lt;/p&gt;
&lt;p&gt;&lt;img style="margin: 5px;" src="/Uploads/Gallery/blog/tarpipe bookmarklet.JPG" border="0" alt="Tarpipe Bookmarklet" title="Tarpipe Bookmarklet" width="513" height="183" /&gt;&lt;/p&gt;
&lt;p&gt;Upon submitting it routes the information to Twitter (compressing the URL) and to my del.icio.us account using relevant tags that are shared across Delphic Sage.&lt;/p&gt;
&lt;p&gt;I have other tarpipes that route personal info to Facebook, Twitter and &lt;a href="http://www.evernote.com"&gt;Evernote&lt;/a&gt; (my note taking) via email. Currently there is no pipe for LinkedIn, but I have to assume that is not very far off. All in all, pretty slick stuff.&lt;/p&gt;
&lt;p&gt;Feel free to use the comments box below to let me know what you've been using.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xgDLv8qy-2I:2VoJjyivpME:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xgDLv8qy-2I:2VoJjyivpME:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xgDLv8qy-2I:2VoJjyivpME:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=xgDLv8qy-2I:2VoJjyivpME:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xgDLv8qy-2I:2VoJjyivpME:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=xgDLv8qy-2I:2VoJjyivpME:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=xgDLv8qy-2I:2VoJjyivpME:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/xgDLv8qy-2I" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Tue, 24 Feb 2009 12:00:00 EST</pubDate><guid isPermaLink="false">161</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=533&amp;title=Effectively_Managing_Social_Media_Status_Updates</feedburner:origLink></item><item><title>20 push-ups an Hour</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/rIacUvhERJ0/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rIacUvhERJ0:sKeypk4yoOI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rIacUvhERJ0:sKeypk4yoOI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rIacUvhERJ0:sKeypk4yoOI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=rIacUvhERJ0:sKeypk4yoOI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rIacUvhERJ0:sKeypk4yoOI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=rIacUvhERJ0:sKeypk4yoOI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=rIacUvhERJ0:sKeypk4yoOI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/rIacUvhERJ0" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Charlie)</author><pubDate>Mon, 23 Feb 2009 12:00:00 EST</pubDate><guid isPermaLink="false">155</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=534&amp;title=20_pushups_an_Hour</feedburner:origLink></item><item><title>Follow Us On Twitter</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/NddRHdHq-xE/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=NddRHdHq-xE:pG7QShabFj0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=NddRHdHq-xE:pG7QShabFj0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=NddRHdHq-xE:pG7QShabFj0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=NddRHdHq-xE:pG7QShabFj0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=NddRHdHq-xE:pG7QShabFj0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=NddRHdHq-xE:pG7QShabFj0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=NddRHdHq-xE:pG7QShabFj0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/NddRHdHq-xE" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Fri, 20 Feb 2009 12:00:00 EST</pubDate><guid isPermaLink="false">160</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=415&amp;title=Follow_Us_On_Twitter</feedburner:origLink></item><item><title>Google Chrome:  The Only Web Browser for Mom</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/tO5lG8cq5eo/blog.aspx</link><description>&lt;h2&gt;Mom gets on the Internet&lt;/h2&gt;
&lt;p&gt;So, while I was figuring out when I would have time to set this laptop up for her, I had thought about which browser to install.  To know why I chose Chrome, one only needs to watch my Mom on the computer for 2 minutes.  There's no way to explain it.  She has six sons, so much of her life was raising us troublemakers.  She has no interest in the Internet, whatsoever, she's just getting on because I've told her numerous times, "The pictures of your Grandchildren are up on flickr.com".  Instead she insists on print-outs, and although they work quite well - paper doesn't grow on trees....well....you get what I'm saying.&lt;/p&gt;
&lt;p&gt;Just the other day, she wanted to find out where in the body the spleen was located, because my brother has been having pains.  She wasn't sleeping well because of it, and she had learned of WebMD over the radio or TV or something.  So the advertising worked.   She quickly became frustrated as she pointed to a drawing of an interactive body, trying to tell it where the pain in my brother was.  She kept clicking "It's right there!"  Nothing happened.  Right then was her first lesson in Google and Wikipedia.  After one minute, we found out it's not the spleen, instead it's probably the liver.  Big surprise.  Actually, he hurt himself snowboarding, it's just cracked ribs.&lt;/p&gt;
&lt;h2&gt;So why is Chrome the best choice for Mom?  Simplicity.&lt;/h2&gt;
&lt;p&gt;The most obvious evidence of this is that there is only one bar to enter text into.  Web pages can be difficult enough to navigate for someone with little to no browsing experience, she doesn't need a difficult browser to navigate as well.  My tutorial on this part was "Enter what you're looking for here, and if you happen to know the address, type it in." It just doesn't get simpler than that.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/chrome/chrome2.jpg" border="0" width="416" height="38" /&gt;&lt;/p&gt;
&lt;p&gt;The other huge factor in the simplicity realm is the "Create Application Shortcuts..." button.  Another of my  brothers had just set her up with an email address from Comcast.  I went to the site, entered in her credentials and signed in, making sure to click "Remember Me", and allowing Chrome to remember the username and password.  I then created an application shortcut with a link on her desktop titled "Comcast Email".&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/chrome/chrome1.jpg" border="0" width="237" height="82" /&gt;&lt;/p&gt;
&lt;p&gt;Looking at Firefox, just the toolbar alone is enough to discourage newcomers.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/chrome/firefox1.jpg" border="0" width="289" height="92" /&gt;&lt;/p&gt;
&lt;p&gt;When Chrome opens the new window, there's that page with her most visited sites and recent bookmarks.  I think she will become very accustomed to this and find it very easy to use.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/chrome/chrome8.jpg" border="0" width="440" height="359" /&gt;&lt;/p&gt;
&lt;p&gt;I feel that Chrome follows that timeless saying, "Perfection is achieved not when there is nothing left to add, but when there is nothing left to take away" - Antoine de Saint-Exupery.&lt;/p&gt;
&lt;p&gt;I feel that no confusion about the web browser will make Mom's browsing and emailing experiences very pleasant.  Now we just have to get certain relatives to stop forwarding those Bill Gates emails promising thousands of dollars!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=W562XSDs"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=r0vZZVET"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=SdpKlIlB"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=SdpKlIlB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=X86XDNEo"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=SjUual0W"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=SjUual0W" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/tO5lG8cq5eo" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Jason)</author><pubDate>Thu, 12 Feb 2009 12:00:00 EST</pubDate><guid isPermaLink="false">156</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=380&amp;title=Google_Chrome__The_Only_Web_Browser_for_Mom</feedburner:origLink></item><item><title>Top 5 Web Marketing Metrics</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/NAtPJaElAW8/blog.aspx</link><description>&lt;p&gt;Answer those questions and you'll have a better organized, user friendly, and content rich website that your customers will value.&lt;/p&gt;
&lt;p&gt;Another popular comment I hear often is we should have blogs, RSS feeds, utilize &lt;a href="http://www.facebook.com"&gt;facebook&lt;/a&gt;, &lt;a href="http://www.twitter.com"&gt;twitter&lt;/a&gt;, etc. because everyone else is doing it. But then if I asked why they want a blog, many times the answer is unclear.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Do you have a following of regular customers that may want to find out updates to your site?&lt;/strong&gt; Then maybe an RSS feed would work better for your product. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are you considered an expert in your field?&lt;/strong&gt; Then a blog would probably be better suited to keep your customers engaged with your company and perhaps even gain some new readers. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Do you have a community of people that swear by your product and are spreading the news to their friends?&lt;/strong&gt; Great!&amp;nbsp; Welcome to word-of-mouth marketing! A natural fit would be social marketing tools like a forum or &lt;a href="http://www.facebook.com"&gt;facebook&lt;/a&gt; or even creating a user generated section of your site, e.g. testimonials.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Online marketing is a great and important way to reach out to your customers but there are lots of different methods depending on your customer segment and your industry as well as your budget. &lt;span class="callout"&gt;Make sure that you are thinking through the best marketing strategy for your product before jumping on the bandwagon.&lt;/span&gt; An experienced online marketing company, such as Delphic Sage, can research your business and customers and help you set up an ongoing online marketing plan (wink, wink).&lt;/p&gt;
&lt;p&gt;If you implement some sort of measurement tool, you will more likely be able to get buy-in from the powers to be because you can quantify the ROI for your spending. There are many free analytics and marketing tools (&lt;a href="http://www.google.com/analytics"&gt;Google Analytics&lt;/a&gt;) out there that can help you measure your online marketing efforts. The number one mistake I see companies making is not tying their online efforts into tangible sales whether online or offline. You should track that customer from their initial click, throughout their visit and monitor their purchase behavior. If there is an online order form, great! If there isn't, there are many 3rd party metrics tools that can help you track a user from online to an offline phone call for purchase. And if you are losing your customers somewhere along the way, these tracking tools will help you find the drop-off point!&lt;/p&gt;
&lt;h2&gt;5 things each company should measure:&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Web Traffic (sources and quantity)&lt;/li&gt;
&lt;li&gt;Bounce Rates (especially on landing pages)&lt;/li&gt;
&lt;li&gt;Top Keywords (search engines and internal search logs)&lt;/li&gt;
&lt;li&gt;Click thru rate&lt;/li&gt;
&lt;li&gt;Conversion Rate&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Bonus: &lt;/em&gt;Measure User Engagement&lt;/li&gt;
&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=v9isb4Io"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=gxMb4cpr"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=kQ1eTSLG"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=kQ1eTSLG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=SPgP9cAF"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=xnwzT5Jr"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=xnwzT5Jr" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/NAtPJaElAW8" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Tania R)</author><pubDate>Fri, 06 Feb 2009 12:00:00 EST</pubDate><guid isPermaLink="false">154</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=376&amp;title=Top_5_Web_Marketing_Metrics</feedburner:origLink></item><item><title>Get Your Free White Paper on Squeeze Pages</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/yfic93hI04I/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=sGzauzW5"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=qbQvun4Q"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=SsoOrdLx"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=SsoOrdLx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=VMmADLJe"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=nkti7oBh"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=nkti7oBh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/yfic93hI04I" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Mon, 02 Feb 2009 12:00:00 EST</pubDate><guid isPermaLink="false">153</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=363&amp;title=Get_Your_Free_White_Paper_on_Squeeze_Pages</feedburner:origLink></item><item><title>10 Development Tools That We Wouldn't Want to Live Without</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/WrDMkFNgolw/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=80RwVE9h"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=t4Jxqch6"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=iPavPJ8B"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=iPavPJ8B" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=a3HQhPVn"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=um1xJA9D"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=um1xJA9D" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/WrDMkFNgolw" height="1" width="1"/&gt;</description><author>info@delphicsage.com (SMercer)</author><pubDate>Tue, 20 Jan 2009 12:00:00 EST</pubDate><guid isPermaLink="false">151</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=355&amp;title=10_Development_Tools_That_We_Wouldnt_Want_to_Live_Without</feedburner:origLink></item><item><title>Facebook and the Shoemakers Children</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/vuG-K1_PFys/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vuG-K1_PFys:VsR_kNojEpY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vuG-K1_PFys:VsR_kNojEpY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vuG-K1_PFys:VsR_kNojEpY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=vuG-K1_PFys:VsR_kNojEpY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vuG-K1_PFys:VsR_kNojEpY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=vuG-K1_PFys:VsR_kNojEpY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=vuG-K1_PFys:VsR_kNojEpY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/vuG-K1_PFys" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Fri, 16 Jan 2009 12:00:00 EST</pubDate><guid isPermaLink="false">150</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=535&amp;title=Facebook_and_the_Shoemakers_Children</feedburner:origLink></item><item><title>Happy New Year </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/p8EHYGEdKd0/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=9F8aYGF7"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=lsWow1d0"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=7m6BUDpP"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=7m6BUDpP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=KxJ3Uasm"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=o5pLpnSL"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=o5pLpnSL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/p8EHYGEdKd0" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Wed, 31 Dec 2008 12:00:00 EST</pubDate><guid isPermaLink="false">147</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=345&amp;title=Happy_New_Year_</feedburner:origLink></item><item><title>Delphic Sage Adopts-A-Family for the Holidays!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/T-SUyMb2etg/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=ME4P8baX"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=7hlsCrBH"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=2AMOYzCD"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=2AMOYzCD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=aqYi3rA8"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=chxdWuB8"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=chxdWuB8" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/T-SUyMb2etg" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Tania R)</author><pubDate>Tue, 23 Dec 2008 12:00:00 EST</pubDate><guid isPermaLink="false">146</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=339&amp;title=Delphic_Sage_AdoptsAFamily_for_the_Holidays</feedburner:origLink></item><item><title>Social Media Conversation Prism</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/2AShSFd0XCg/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2AShSFd0XCg:MddakqdP5cg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2AShSFd0XCg:MddakqdP5cg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2AShSFd0XCg:MddakqdP5cg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=2AShSFd0XCg:MddakqdP5cg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2AShSFd0XCg:MddakqdP5cg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=2AShSFd0XCg:MddakqdP5cg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=2AShSFd0XCg:MddakqdP5cg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/2AShSFd0XCg" height="1" width="1"/&gt;</description><author>info@delphicsage.com (T.R.)</author><pubDate>Mon, 01 Dec 2008 12:00:00 EST</pubDate><guid isPermaLink="false">143</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=537&amp;title=Social_Media_Conversation_Prism</feedburner:origLink></item><item><title>I almost missed a flight because of a Mac OSX BSOD!!!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/4Vj7AwCnhyI/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4Vj7AwCnhyI:faEBbKOqFJA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4Vj7AwCnhyI:faEBbKOqFJA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4Vj7AwCnhyI:faEBbKOqFJA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=4Vj7AwCnhyI:faEBbKOqFJA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4Vj7AwCnhyI:faEBbKOqFJA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=4Vj7AwCnhyI:faEBbKOqFJA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=4Vj7AwCnhyI:faEBbKOqFJA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/4Vj7AwCnhyI" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Scott)</author><pubDate>Tue, 11 Nov 2008 12:00:00 EST</pubDate><guid isPermaLink="false">142</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=536&amp;title=I_almost_missed_a_flight_because_of_a_Mac_OSX_BSOD</feedburner:origLink></item><item><title>Facelift for Three for All-Fill</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/GD28123mYiE/blog.aspx</link><description>&lt;p&gt;&lt;a href="http://www.alphacheckweighers.com" target="_blank" title="Alpha Checkweighers"&gt;&lt;img src="/Uploads/Gallery/blog/alpha checkweighers redesign by delphic sage.JPG" border="0" alt="Alpha Checkweighers Web Redesign" title="Alpha Checkweighers Web Site Redesign" width="540" height="393" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.augerfab.com" target="_blank" title="AugerFab"&gt;&lt;img src="/Uploads/Gallery/blog/augerfab redesign by delphic sage.JPG" border="0" alt="AugerFab Web Redesign" title="AugerFab Web Site Redesign" width="540" height="348" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Delphic Sage is a &lt;a href="/default.aspx?p=1156"&gt;Philadelphia web design&lt;/a&gt; and development agency.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GD28123mYiE:4Q9kB9PI3EU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GD28123mYiE:4Q9kB9PI3EU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GD28123mYiE:4Q9kB9PI3EU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=GD28123mYiE:4Q9kB9PI3EU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GD28123mYiE:4Q9kB9PI3EU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=GD28123mYiE:4Q9kB9PI3EU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=GD28123mYiE:4Q9kB9PI3EU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/GD28123mYiE" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Mon, 10 Nov 2008 12:00:00 EST</pubDate><guid isPermaLink="false">141</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=538&amp;title=Facelift_for_Three_for_AllFill</feedburner:origLink></item><item><title>Start Your Engines!!!</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Mr0ynYth4TQ/blog.aspx</link><description>&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts11.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="386" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts8.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="723" /&gt;&lt;br /&gt; &lt;em&gt;Ready for war&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts2.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="723" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts10.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="386" /&gt;&lt;br /&gt;&lt;em&gt;A battle for pole position&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts3.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts12.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="386" /&gt;&lt;br /&gt;&lt;em&gt;I really hope she's not flipping me off&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts6.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="723" /&gt;&lt;br /&gt;&lt;em&gt;Kevin's new friends. Introduced to him by Mark&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts5.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="723" /&gt;&lt;br /&gt;&lt;em&gt;Losing the race means facing the velociraptor.&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts9.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="723" /&gt;&lt;br /&gt;&lt;em&gt;Our Chef&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/pics_gocarts4.jpg" border="0" alt="Delphic Sage Go-Carting" title="Delphic Sage Go-Carting" width="540" height="723" /&gt;&lt;br /&gt;&lt;em&gt;Neon lights and all&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Mr0ynYth4TQ:nKulMiXdkZ8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Mr0ynYth4TQ:nKulMiXdkZ8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Mr0ynYth4TQ:nKulMiXdkZ8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Mr0ynYth4TQ:nKulMiXdkZ8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Mr0ynYth4TQ:nKulMiXdkZ8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Mr0ynYth4TQ:nKulMiXdkZ8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Mr0ynYth4TQ:nKulMiXdkZ8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Mr0ynYth4TQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com (CH)</author><pubDate>Wed, 05 Nov 2008 12:00:00 EST</pubDate><guid isPermaLink="false">139</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=539&amp;title=Start_Your_Engines</feedburner:origLink></item><item><title>YouTube Now Second-largest Search Site</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/wkenPpe_Nvs/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=DKDWXbjN"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=zpZk2USI"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=OP16T1JV"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=OP16T1JV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=5CMS7J5c"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=TXXAdWAn"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=TXXAdWAn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/wkenPpe_Nvs" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Tania R.)</author><pubDate>Mon, 27 Oct 2008 12:00:00 EST</pubDate><guid isPermaLink="false">138</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=310&amp;title=YouTube_Now_Secondlargest_Search_Site</feedburner:origLink></item><item><title>Good Looking Bike Rides - Manayunk to South Philly</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Etbnb_AjmOI/blog.aspx</link><description>&lt;p&gt;&lt;img src="/Uploads/Gallery/four.jpg" border="0" width="540" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/two.jpg" border="0" width="540" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/DSCN1202.jpg" border="0" width="540" height="720" /&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Etbnb_AjmOI:YMrRnJWlCsA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Etbnb_AjmOI:YMrRnJWlCsA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Etbnb_AjmOI:YMrRnJWlCsA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Etbnb_AjmOI:YMrRnJWlCsA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Etbnb_AjmOI:YMrRnJWlCsA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=Etbnb_AjmOI:YMrRnJWlCsA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=Etbnb_AjmOI:YMrRnJWlCsA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Etbnb_AjmOI" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Charlie)</author><pubDate>Wed, 15 Oct 2008 12:00:00 EST</pubDate><guid isPermaLink="false">135</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=541&amp;title=Good_Looking_Bike_Rides__Manayunk_to_South_Philly</feedburner:origLink></item><item><title>Advertiser vs. Consumer - Longing for a Two Way Dialogue</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/IEXhK3Uk9C8/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IEXhK3Uk9C8:Ai88bX3uk7w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IEXhK3Uk9C8:Ai88bX3uk7w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IEXhK3Uk9C8:Ai88bX3uk7w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=IEXhK3Uk9C8:Ai88bX3uk7w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IEXhK3Uk9C8:Ai88bX3uk7w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=IEXhK3Uk9C8:Ai88bX3uk7w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=IEXhK3Uk9C8:Ai88bX3uk7w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/IEXhK3Uk9C8" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Wed, 15 Oct 2008 12:00:00 EST</pubDate><guid isPermaLink="false">136</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=508&amp;title=Advertiser_vs_Consumer__Longing_for_a_Two_Way_Dialogue</feedburner:origLink></item><item><title>An Easier Way to Modify the XHTML Output of ASP.NET Controls</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/_m8I9bRQdjQ/blog.aspx</link><description>&lt;h2&gt;How to Make Small Modifications to the XHtml Generated from Controls Using a StringWriter and XmlDocument&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;Say you're writing a control or a control adapter and you want to just simply include one extra attribute, or maybe an extra nested element (e.g. a div or a span with a css class on it), ideally there would be something analogous to virtual methods and inheritance where you can say, "do the base method, except here, where I'll override what is normally done, etc."&lt;/p&gt;
&lt;p&gt;The scenario of inheriting from a Control gives you some flexibility because .net exposes some of the modular methods for rendering out the control to be overridden, such as RenderBeginTag, RenderChildren.  ControlAdapters are a lot more sparse, you mostly just have a base call to render out how the control would be rendered out if the base control adapter was being used to render out the control (with the base action frequently being to render out the control as if no control adapter was being applied).&lt;/p&gt;
&lt;p&gt;On possible solution to all of this is to just create a temporary HtmlTextWriter wrapping a StringWriter and do a base call to Render passing that writer in.  You can now get what the original xhtml would have been by calling .ToString() on the inner StringWriter.&lt;/p&gt;
&lt;p&gt;To work with the generated html, while there isn't an HtmlTextReader, keep in mind that since the controls should be generating xhtml, that should mean the text will be well-formed xml, so you can XmlDocument (or an XmlTextReader) to navigate through the xhtml generated and mindlessly rewrite it to the original HtmlTextWriter with the 'except'  cases written in.&lt;/p&gt;
&lt;p&gt;One possible exception to the generated text being xml that I could imagine is if there is a control that have an enclosing element.  In that case you would want your adapter to just prepend and append custom opening and closing tags around the base xhtml and then, when doing the re-writing of the original xhtml, just don't write the outermost element.&lt;/p&gt;
&lt;p&gt;Below is an illustrative example where I write a control adapter for drop down lists that for each option in the list, encloses the text with a span element that has a class attribute of "my-span".&lt;/p&gt;
&lt;p&gt;&lt;a href="/Uploads/FileManager/ExtendingControlRender.zip"&gt;Download the SourceCode&lt;/a&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.Adapters;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Xml;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; DelphicSage.TestAdapters&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DropDownListAdapter : ControlAdapter&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Render(HtmlTextWriter writer)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            StringWriter baseStringWriter = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringWriter();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            HtmlTextWriter baseWriter = &lt;span class="kwrd"&gt;new&lt;/span&gt; HtmlTextWriter(baseStringWriter);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            baseWriter.NewLine = writer.NewLine;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            baseWriter.Indent = writer.Indent;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="rem"&gt;// baseWriter.FormatProvider = writer.FormatProvider;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="rem"&gt;// baseWriter.Encoding = writer.Encoding;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            &lt;span class="kwrd"&gt;base&lt;/span&gt;.Render(baseWriter);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            baseWriter.Flush();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            baseWriter.Close();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; baseHtml = baseStringWriter.ToString();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(baseHtml))&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                XmlDocument originalXhtml = &lt;span class="kwrd"&gt;new&lt;/span&gt; XmlDocument();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                originalXhtml.PreserveWhitespace = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                originalXhtml.LoadXml(baseHtml);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.WriteNode(writer, originalXhtml);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteNode(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;            &lt;span class="kwrd"&gt;switch&lt;/span&gt; (xhtmlNode.NodeType)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; XmlNodeType.Text:&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;                    WriteTextNode(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; XmlNodeType.Whitespace:&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                    WriteWhitespaceNode(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; XmlNodeType.Element:&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                    WriteElementNode(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;                    WriteUnknownNode(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteUnknownNode(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;            WriteChildNodes(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteTextNode(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;            writer.Write(xhtmlNode.Value);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteWhitespaceNode(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt;            writer.Write(xhtmlNode.Value);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;            WriteChildNodes(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteChildNodes(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (xhtmlNode.HasChildNodes)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (XmlNode childNode &lt;span class="kwrd"&gt;in&lt;/span&gt; xhtmlNode.ChildNodes)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;                {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&gt;                    WriteNode(writer, childNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&gt;                }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  80:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  81:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  82:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  83:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteElementNode(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  84:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  85:  &lt;/span&gt;            writer.WriteBeginTag(xhtmlNode.Name);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  86:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  87:  &lt;/span&gt;            WriteAttributes(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  88:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  89:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (xhtmlNode.Name.ToLower() == &lt;span class="str"&gt;"option"&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  90:  &lt;/span&gt;            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  91:  &lt;/span&gt;                writer.Write(&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  92:  &lt;/span&gt;                writer.WriteBeginTag(&lt;span class="str"&gt;"span"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  93:  &lt;/span&gt;                writer.WriteAttribute(&lt;span class="str"&gt;"class"&lt;/span&gt;, &lt;span class="str"&gt;"my-span"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  94:  &lt;/span&gt;                writer.Write(&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  95:  &lt;/span&gt;                writer.Write(xhtmlNode.InnerXml);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  96:  &lt;/span&gt;                writer.WriteEndTag(&lt;span class="str"&gt;"span"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  97:  &lt;/span&gt;                writer.WriteEndTag(&lt;span class="str"&gt;"option"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  98:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  99:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 100:  &lt;/span&gt;            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 101:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (xhtmlNode.HasChildNodes)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 102:  &lt;/span&gt;                {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 103:  &lt;/span&gt;                    writer.Write(&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 104:  &lt;/span&gt;                    WriteChildNodes(writer, xhtmlNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 105:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 106:  &lt;/span&gt;                    writer.WriteEndTag(xhtmlNode.Name);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 107:  &lt;/span&gt;                }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 108:  &lt;/span&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 109:  &lt;/span&gt;                {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 110:  &lt;/span&gt;                    writer.Write(&lt;span class="str"&gt;" /&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 111:  &lt;/span&gt;                }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 112:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 113:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 114:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 115:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteAttributes(HtmlTextWriter writer, XmlNode xhtmlNode)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 116:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 117:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (xhtmlNode.Attributes != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 118:  &lt;/span&gt;            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 119:  &lt;/span&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (XmlAttribute attribute &lt;span class="kwrd"&gt;in&lt;/span&gt; xhtmlNode.Attributes)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 120:  &lt;/span&gt;                {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 121:  &lt;/span&gt;                    &lt;span class="rem"&gt;// the base xHtml seems to generate Attributes as&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 122:  &lt;/span&gt;                    &lt;span class="rem"&gt;// attribute_name='foo("bar");'&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 123:  &lt;/span&gt;                    &lt;span class="rem"&gt;// but the HtmlTextWriter.WriterAttribute spits out attribute_name="foo"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 124:  &lt;/span&gt;                    &lt;span class="rem"&gt;// so we'll switch the double-quotes (") in the attribute's original value to &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 125:  &lt;/span&gt;                    &lt;span class="rem"&gt;// to a single quote ('), to get something more like&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 126:  &lt;/span&gt;                    &lt;span class="rem"&gt;// attribute_name="foo('bar');"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 127:  &lt;/span&gt;                    writer.WriteAttribute(attribute.Name, attribute.Value.Replace(&lt;span class="str"&gt;"\""&lt;/span&gt;, &lt;span class="str"&gt;"'"&lt;/span&gt;));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 128:  &lt;/span&gt;                }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 129:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 130:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 131:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt; 132:  &lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;As you can see, it is much easier to parse and manipulate an XMLDocument object than to mess around with a string.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=lMVY7tDN"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=HHdXHmST"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=DzxzGX94"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=DzxzGX94" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=CCmg8P0f"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=QEdKayyk"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=QEdKayyk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/_m8I9bRQdjQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Mark S.)</author><pubDate>Tue, 14 Oct 2008 12:00:00 EST</pubDate><guid isPermaLink="false">134</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=280&amp;title=An_Easier_Way_to_Modify_the_XHTML_Output_of_ASPNET_Controls</feedburner:origLink></item><item><title>jQuery Style ASP.NET Form Validators - Part Deux: Let&amp;#039;s Get Animated</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/8z5evgGYySA/blog.aspx</link><description>&lt;p&gt;If you&amp;#039;ll look closely at&amp;nbsp;lines 14 and 16, all I have done is comment out the old microsoft code that&amp;nbsp;toggles the display and replaced them with the jQuery Show and Hide functions. If you want to glitz it up even more, you could use the extensive jQuery animation library to blink, fade, slide, earthquake&amp;nbsp;and pulsate your validation messages so that&amp;nbsp;they&amp;#039;re impossible for your users to ignore....especially when their browser crashes and their machine catches fire. You can also use the same tactic to animate your validation summary show/hide. &amp;nbsp;Anyway, use&amp;nbsp;this knowledge&amp;nbsp;in good taste....and enjoy.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=zTPGRjRk"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=zix6jfFE"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=xifP4284"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=xifP4284" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=QRgFkjOF"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=CguwQeSb"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=CguwQeSb" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/8z5evgGYySA" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Scott)</author><pubDate>Tue, 07 Oct 2008 12:00:00 EST</pubDate><guid isPermaLink="false">131</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=273&amp;title=jQuery_Style_ASPNET_Form_Validators__Part_Deux_Let039s_Get_Animated</feedburner:origLink></item><item><title>GMail Goggles?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/1VVCDUy7Ox8/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=myN4IzeV"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=QUlHXaGG"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=63wNlxpC"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=63wNlxpC" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=rmWTj1SD"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=IKfCdwns"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=IKfCdwns" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/1VVCDUy7Ox8" height="1" width="1"/&gt;</description><author>info@delphicsage.com (b-ri)</author><pubDate>Tue, 07 Oct 2008 12:00:00 EST</pubDate><guid isPermaLink="false">132</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=274&amp;title=GMail_Goggles</feedburner:origLink></item><item><title>Chrome - The new guy.</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/eK1shKDov6M/blog.aspx</link><description>&lt;h2&gt;Bugs:&lt;/h2&gt;
&lt;p&gt;My first bug came out at YouTube. I got a JavaScript message saying I needed to "Download the most recent version of Flash player" or "Enable Javascript".&amp;nbsp; After I downloaded the most recent Flash player and restarted Chrome I still wasn't able to view the flash content... and was still getting the same message. I searched for "Chrome flash player download" and came across &lt;a href="http://www.thewwwblog.com/install-flash-player-google-chrome-browser.html"&gt;The WWW Blog&lt;/a&gt; and a post they wrote about the problem that I was having. Apparently, Chrome is have difficulty with required authentication and sites that require flash to display content. &lt;br /&gt;&lt;br /&gt;The fix was quick and rather painless but none the less, felt a bit patchy and sort-of felt like I was putting a band-aid on pretty bigger problem. From there I noticed that there wasn't an easy way for me to navigate to Chrome's plug-ins. The non-existant toolbar made me feel a bit helpless and the "Control/Customize" drop-downs didn't lead me into a specific direction.&lt;/p&gt;
&lt;h2&gt;The Developer tool:&lt;/h2&gt;
&lt;p&gt;I thought that the Developer tool was sort-of nice because I was able to highlight code the same way I do while using &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt; but wasn't able to momentarily augment code (ex: change an element's CSS display from "inline" to "block"),&amp;nbsp; thus making the tool more neat then useful. Initially, I was pleased to see such a developer friendly tool as a default in the browser. Seeing as Firebug has become one of the most powerful tools a developer can get his or her hands on, I would have been happy to thank google for the ability to fix the inevitable platform bugs a new browsers presents. But Chrome's inspector fell short of what, I thought, it's intended use was. The "Javascript Debug" dialogue occurred with out context to the rest of the code, making the tool feel useless. When I put Chrome's JS debugger against Firebug's, the Chrome tools felt like a gadget and NOT a developer tool.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog_chrome2.jpg" border="0" width="350" height="219" /&gt;&lt;/p&gt;
&lt;h2&gt;Complaints:&lt;/h2&gt;
&lt;p&gt;Where I would expect to find the "Open a new page"&amp;nbsp; link, I found nothing! I figured I was in the wrong drop down but was disappointed to find that it wasn't in either of the drop-down lists. I reverted back to the "control-o" command and was relieved that it worked but felt that the non keyboard shortcut route should at least be an option. This isn't much of a bug and will, in the end, make for a more efficient user but, I feel took the leap pre-emptivly and will cause confusion with the general public who is finally grasping the concept of using tabs.&lt;br /&gt;&lt;br /&gt;Also, by calling this version of Chrome a "Beta", Google is releasing themselves of accountability of crummy browsing, security holes and general mess-ups. Though it's may be a great idea to release a beta to the general public, it seems a little wishy-washy in the same way that Gmail beta has been around for three years. &lt;br /&gt;&lt;br /&gt;Download &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=JSZjxqOX"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=NDdepsXm"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=0H44KAc4"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=0H44KAc4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=5hfo0u8j"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=QAg6v0nC"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=QAg6v0nC" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/eK1shKDov6M" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Charlie)</author><pubDate>Tue, 09 Sep 2008 12:00:00 EST</pubDate><guid isPermaLink="false">130</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=269&amp;title=Chrome__The_new_guy</feedburner:origLink></item><item><title>Taking Google Chrome for a Test Drive: First Impressions</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Z3IrtDcqGKs/blog.aspx</link><description>&lt;p&gt;So a few quick comments of what I've observed so far.&lt;/p&gt;
&lt;p&gt;What I've liked:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It seems pretty zippy on Javascript heavy pages (which I use a lot)&lt;/li&gt;
&lt;li&gt;It's crashed once in several days of heavy use (Firefox 3 still crashes on me quite a few times a day)&lt;/li&gt;
&lt;li&gt;The minimalist approach in a browser is appreciated&lt;/li&gt;
&lt;li&gt;I like the tabs at the top&lt;/li&gt;
&lt;li&gt;Google Gears works well (surprise)&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What still needs work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plug-ins - though I'm not a huge plug-in guy, there are some critical ones I'd like to see (on the way)&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;I don't really like the blue - though I understand there are themes out already&lt;/li&gt;
&lt;li&gt;Most sites hold up ok, but some more complex will need some work (&lt;a href="http://www.evernote.com" target="_blank" title="Evernote"&gt;Evernote&lt;/a&gt; was a tough one for me)&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Text editors are a disaster (not surprisingly)&lt;/li&gt;
&lt;li&gt;Initially it wasn't being identified in Google Analytics, but that has been remedied I understand&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It would seem that Google is trying build Chrome into a solid base for web-based applications. This is a welcome addition from our perspective. And the competition is always good for all of us.&lt;/p&gt;
&lt;p&gt;Drop us a comment and let us know your impressions so far, esepcially as it relates to web design and development.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=nceeZdjJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=5AUuAZy0"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=5mgKI73J"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=5mgKI73J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=1pHHQN2Q"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=A8S7Rm8r"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=A8S7Rm8r" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Z3IrtDcqGKs" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Fri, 05 Sep 2008 12:00:00 EST</pubDate><guid isPermaLink="false">129</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=252&amp;title=Taking_Google_Chrome_for_a_Test_Drive_First_Impressions</feedburner:origLink></item><item><title>Convert Your ASP:Button Controls to Sliding Doors Styled Button Elements </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/Zus4s8Eab3U/blog.aspx</link><description>&lt;p&gt;First thing that we need to do is create a class that derives from the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.adapters.controladapter.aspx" target="_blank"&gt;System.Web.UI.Adapters.ControlAdapter&lt;/a&gt;&amp;nbsp;class.&amp;nbsp;&amp;nbsp; So we'll create the ButtonAdapter.cs and add it to a folder called ControlAdapters in the App_Code folder of our website.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;ButtonAdapter.cs&amp;nbsp;&amp;nbsp;&lt;/h3&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; App_Code.ControlAdapters
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ButtonAdapter : System.Web.UI.Adapters.ControlAdapter
    {
        &lt;span class="rem"&gt;// Return a strongly-typed reference&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Button Control
        {
            get
            {
                &lt;span class="kwrd"&gt;return&lt;/span&gt; (Button)&lt;span class="kwrd"&gt;base&lt;/span&gt;.Control;
            }
        }

        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Render(HtmlTextWriter writer)
        {
            Button button = &lt;span class="kwrd"&gt;this&lt;/span&gt;.Control;

            writer.WriteBeginTag(&lt;span class="str"&gt;"button"&lt;/span&gt;); &lt;span class="rem"&gt;// &amp;lt;button &lt;/span&gt;

            writer.WriteAttribute(&lt;span class="str"&gt;"value"&lt;/span&gt;, &lt;span class="str"&gt;"submit"&lt;/span&gt;); &lt;span class="rem"&gt;// &amp;lt;button value="submit" &lt;/span&gt;

            writer.WriteAttribute(&lt;span class="str"&gt;"id"&lt;/span&gt;, button.ClientID); &lt;span class="rem"&gt;// &amp;lt;button value="submit" id="btnButton"&lt;/span&gt;

            PostBackOptions myPostBackOptions = &lt;span class="kwrd"&gt;new&lt;/span&gt; PostBackOptions(button);
            &lt;span class="rem"&gt;//Add the Postback event&lt;/span&gt;
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (button.Page.ClientScript.GetPostBackEventReference(myPostBackOptions).Length &amp;gt; 0)
            {
                &lt;span class="rem"&gt;//Turn on Validation if it needs to be on...&lt;/span&gt;
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (button.CausesValidation)
                    myPostBackOptions.PerformValidation = &lt;span class="kwrd"&gt;true&lt;/span&gt;;

                &lt;span class="rem"&gt;//Need to replace double quotes with single quotes for javascript to work.&lt;/span&gt;
                writer.WriteAttribute(&lt;span class="str"&gt;"onclick"&lt;/span&gt;, button.Page.ClientScript.GetPostBackEventReference(myPostBackOptions).Replace(&lt;span class="str"&gt;"\""&lt;/span&gt;, &lt;span class="str"&gt;"'"&lt;/span&gt;)); &lt;span class="rem"&gt;// &amp;lt;button value="submit" &lt;/span&gt;

                &lt;span class="rem"&gt;//Register the Event&lt;/span&gt;
                button.Page.ClientScript.RegisterForEventValidation(myPostBackOptions);
            } &lt;span class="rem"&gt;// &amp;lt;button value="submit" id="btnButton" onclick="__doPostBack('btnButton','')"&lt;/span&gt;

            &lt;span class="kwrd"&gt;if&lt;/span&gt; (button.CssClass.Length &amp;gt; 0)
                writer.WriteAttribute(&lt;span class="str"&gt;"class"&lt;/span&gt;, button.CssClass); &lt;span class="rem"&gt;// &amp;lt;button value="submit" id="btnButton" onclick="__doPostBack('btnButton','')" class="large-button"&lt;/span&gt;

            writer.Write(HtmlTextWriter.TagRightChar); &lt;span class="rem"&gt;// &amp;lt;button value="submit" id="btnButton" onclick="__doPostBack('btnButton','')" class="large-button"&amp;gt;&lt;/span&gt;
            writer.WriteFullBeginTag(&lt;span class="str"&gt;"span"&lt;/span&gt;);
            writer.Write(button.Text);
            writer.WriteEndTag(&lt;span class="str"&gt;"span"&lt;/span&gt;); &lt;span class="rem"&gt;// &amp;lt;button value="submit" id="btnButton" onclick="__doPostBack('btnButton','')" class="large-button"&amp;gt;&amp;lt;span&amp;gt;testButton&amp;lt;/span&amp;gt;&lt;/span&gt;
            writer.WriteEndTag(&lt;span class="str"&gt;"button"&lt;/span&gt;); &lt;span class="rem"&gt;// &amp;lt;button value="submit" id="btnButton" onclick="__doPostBack('btnButton','')" class="large-button"&amp;gt;&amp;lt;span&amp;gt;testButton&amp;lt;/span&amp;gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
        }
    }
}&lt;/pre&gt;
&lt;p&gt;Notice that&amp;nbsp;the adapter&amp;nbsp;derives from System.Web.UI.Adapters.ControlAdapter and that we are overriding the rendering method. I've added comments on most of the lines&amp;nbsp;to give you an idea of what has been rendered at each point. The trickiest part about getting this to work was the Postback event, first we had to get the PostbackOptions for the Button, then we needed to turn on Validation if it was set on the button. Next we used GetPostBackEventReference to&amp;nbsp;retrieve and set the onclick event. We needed&amp;nbsp;to replace&amp;nbsp;double quotes with single quotes on GetPostBackEventReference because it was&amp;nbsp;causing javascript errors. Finally we needed to register the postback event with RegisterForEventValidation so that we wouldnt get&amp;nbsp;those annoying "Invalid Callback Or Postback Argument" errors.&amp;nbsp; If you have any questions you can always put them in the comments below.&lt;/p&gt;
&lt;h3&gt;Adapters.Browser&lt;/h3&gt;
&lt;p&gt;The next task is to create the browser file that tells the adapter to rule all of your buttons.&amp;nbsp; So we'll create the&amp;nbsp;Adapers.browser and add it to the App_Browsers folder of our website. You could create different adapters for each browser and set them up here but we just need one adapter for all of our browsers.&amp;nbsp; Just set the adapter location and the control type that we want to override and we're almost done. &amp;nbsp; Here is the code for&amp;nbsp;&amp;nbsp;Adapters.Browser:&lt;/p&gt;
&lt;pre class="csharpcode medium-box"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;browsers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;browser&lt;/span&gt; &lt;span class="attr"&gt;refID&lt;/span&gt;&lt;span class="kwrd"&gt;="Default"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;controlAdapters&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;adapter&lt;/span&gt; &lt;span class="attr"&gt;controlType&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.UI.WebControls.Button"&lt;/span&gt; &lt;span class="attr"&gt;adapterType&lt;/span&gt;&lt;span class="kwrd"&gt;="App_Code.ControlAdapters.ButtonAdapter"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;controlAdapters&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;browser&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;browsers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Now your asp:buttons should be rendering as button elements instead of inputs.&amp;nbsp; If they aren't, you did something wrong or maybe I did, leave a comment and we can try to help you out.&lt;/p&gt;
&lt;pre class="csharpcode short-box"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;button&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="btnSubmit"&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="submitBtn"&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('btnSubmit', '', true, '', '', false, true))"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="submit"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;button&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;We still need to set up the CSS to make the sliding doors work but that has already been covered by the folks at &lt;a href="http://www.filamentgroup.com/lab/styling_the_button_element_with_sliding_doors/  " target="_blank"&gt;filament group&lt;/a&gt;.&amp;nbsp; Check out the &lt;a href="/buttonadapterdemo/" target="_blank"&gt;live demo&lt;/a&gt;&amp;nbsp;to see it in action,&amp;nbsp;I used the filament group's css as a starting point so it should be easy to figure out.&amp;nbsp; &lt;a href="/Uploads/FileManager/ButtonAdapterDemo.zip"&gt;Here is the source code in&amp;nbsp;a ASP.NET 3.5&amp;nbsp;solution&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=Tg30WeOP"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=GjTsgI7o"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=2YBgwMit"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=2YBgwMit" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=pgyCMviZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=PZQrNqpq"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=PZQrNqpq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/Zus4s8Eab3U" height="1" width="1"/&gt;</description><author>info@delphicsage.com (B-ri)</author><pubDate>Mon, 18 Aug 2008 12:00:00 EST</pubDate><guid isPermaLink="false">124</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=239&amp;title=Convert_Your_ASPButton_Controls_to_Sliding_Doors_Styled_Button_Elements_</feedburner:origLink></item><item><title>Life In The Cloud: A Journey Into the Ethereal </title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/TXeQDXfF8Xo/blog.aspx</link><description>&lt;h2&gt;My Online Life&lt;/h2&gt;
&lt;p&gt;So what tools do I use regularly? The following represents the core of my online life.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.basecamphq.com" target="_blank" title="Basecamp"&gt;Basecamp&lt;/a&gt; - our client Extranet&lt;br id="l0n1" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.evernote.com" title="Evernote"&gt;Evernote&lt;/a&gt; - notes, personal and professional&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.facebook.com" target="_blank" title="Facebook"&gt;Facebook&lt;/a&gt; - personal networking&lt;/li&gt;
&lt;li&gt;Gmail via Google Apps for business&lt;/li&gt;
&lt;li&gt;Gmail (personal)&lt;/li&gt;
&lt;li&gt;Google Docs&lt;/li&gt;
&lt;li&gt;Google Calendar &lt;/li&gt;
&lt;li&gt;Google Reader&lt;/li&gt;
&lt;li&gt;Google Sites - the Delphic Sage Wiki&lt;br id="l0n12" /&gt;&lt;/li&gt;
&lt;li&gt;Google Talk - Instant Messenger&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.linkedin.com" target="_blank" title="LinkedIn"&gt;LinkedIn&lt;/a&gt; - professional networking&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mozy.com" target="_blank" title="Mozy"&gt;Mozy&lt;/a&gt; - home backup&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.napster.com" target="_blank" title="Napster"&gt;Napster &lt;/a&gt;- music as a subscription via web&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.rememberthemilk.com" target="_blank" title="Remember the Milk"&gt;Remember the Milk &lt;/a&gt;- ToDos&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.salesforce.com" target="_blank" title="Salesforce.com"&gt;Salesforce.com&lt;/a&gt; - CRM app&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Software Hold Outs&lt;/h2&gt;
&lt;p&gt;So, what's left from my old software-centric life? Not much really. &lt;br id="rjaj" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Word docs - at least complicated ones. Proposals from work especially, but they are on my list to convert to Google Docs. This blog post was drafted in Google Docs for example.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;One really complicated Excel spreadsheet that acts as an executive dashboard - there's no way Google Docs will handle this anytime soon. Though I expect to port aspects of it into custom web application that shares more of it with Delphic Sage team.&lt;/li&gt;
&lt;li&gt;Windows Photo Gallery - I use this simple free app (with Vista) to organize photos at home. I'm frankly a bit afraid to use anything that will not be around a LONG time as getting it set up is tedious. Sure, I have a &lt;a href="http://www.flickr.com" target="_blank" title="Flickr"&gt;flickr&lt;/a&gt; account, but I just can't quite make the leap online. And the file volume is huge (about 10K pictures). &lt;br id="qyh90" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Observations from the Cloud &lt;br id="fr2d2" /&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I'm a little uncomfortable that I rely on Google so much. Not just for privacy issues, but at some level I feel like I have traded one monopoly (Microsoft) for another. But what can I say - they build good stuff.&lt;/li&gt;
&lt;li&gt;I've grown increasingly indignant about software that needs to be installed.&amp;nbsp; &lt;br id="lssx2" /&gt;&lt;/li&gt;
&lt;li&gt;Once an ardent Microsoft Windows supporter, I find myself increasingly caring less and less about what operating system I use. It simply doesn't matter much anymore.&lt;/li&gt;
&lt;li&gt;I love being able to get to virtually anything from anywhere on any device. This is especially true for mobile access via my phone (AT&amp;amp;T 8525). &lt;/li&gt;
&lt;li&gt;Speaking of mobile - this is still a bit of a challenge. But I'm thinking of moving to an iPhone, which should solve most of my issues.&lt;br id="btab" /&gt;&lt;/li&gt;
&lt;li&gt;Though I thought I would - I really don't miss Microsoft Outlook. Years of files made it soooooo slow. And it crashed -- often.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I also don't really care about browsers. I use Safari, Firefox and Internet Explorer interchangeably, though the plug-ins for Firefox are hard to beat (if v3 would stop crashing on me so much).&amp;nbsp; &lt;br id="ai920" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br id="sb4o1" /&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=DIbfVgC9"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=DhBxIZcP"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=AWjWFO5X"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=AWjWFO5X" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=INokhyuD"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=0y8rQwad"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=0y8rQwad" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/TXeQDXfF8Xo" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Sat, 02 Aug 2008 12:00:00 EST</pubDate><guid isPermaLink="false">123</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=222&amp;title=Life_In_The_Cloud_A_Journey_Into_the_Ethereal_</feedburner:origLink></item><item><title>Tools of the Trade: Using EditPlus 2 to Generate Code</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/mYiHrJK9sGQ/blog.aspx</link><description>&lt;p&gt;An alternative way to do this would be to open these files in Microsoft Excel and import those to a temporary table (in the sense that it will be deleted later, not a SQL Server "#" temporary table), run a bunch of select statements to find the corresponding ID of the item in the local database, or insert it if it doesn't exist, etc. These have to be done for thousands of records and at least 5 tables. The way that I ultimately opt for each time is to use EditPlus2. This doesn't have many benefits over importing to a table and using a cursor to loop over the items, however, either way has to be a one off solution since we're not going to write a generic CSV importer that can handle foreign key lookups or insertions... yet.&lt;/p&gt;
&lt;h2&gt;The Steps to Using Regex Replace in EditPlus&lt;/h2&gt;
&lt;p&gt;The first step to solving this problem is to examine the data to determine a good regular expression that can be used to parse it thoroughly the first time. This is what I came up with:&lt;/p&gt;
&lt;p&gt;^[0-9]*,([0-9]*),"([A-Z0-9]*)","([A-Za-z ,&amp;amp;0-9/\(\)\-]*)",(-?[0-9]*),(-?[0-9]*),(-?[0-9]*),([0|1]),([0|1])$&lt;br /&gt;Yes, it's a mess. Yes, it works. Better yet, since EditPlus (or your text editor) recognizes your matched groups, it makes it simple to extract these values and plug them into SQL statements. I always keep track of what the groups stand for in comments somewhere to make easy reference when I'm writing the SQL statements. Let's plug it into EditPlus:&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/snap2.jpg" border="0" width="467" height="384" /&gt;&lt;/p&gt;
&lt;p&gt;And run the replace to see what we get with this test replace&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/snap3.jpg" border="0" width="329" height="244" /&gt;&lt;/p&gt;
&lt;p&gt;Now we can write the SQL. Simply "Undo" the previous replace. EditPlus can undo an enormous amount.&amp;nbsp; The resulting file has close to 4000 lines, and it puts the entire replace into a single state, so pressing "CTRL-Z" once undoes the whole replace.&amp;nbsp; Fill in your SQL replace text.&amp;nbsp; It may take some experimentation and brute force, but one undo and you're back to the original file and can try again.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/snap7.jpg" border="0" width="465" height="383" /&gt;&lt;/p&gt;
&lt;p&gt;Run the SQL replace and your SQL should be fully populated and syntactically correct.&amp;nbsp; If you miss a few things, you can just undo once and try again.&amp;nbsp; This SQL has a "set @jobCode" statement to lead off, and it's not declared anywhere, so you need to declare any variables at the top of all the replaced text, not &lt;em&gt;in &lt;/em&gt;the replace regular expression.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/snap4.jpg" border="0" width="428" height="262" /&gt;&lt;/p&gt;
&lt;p&gt;This produces 185,561 lines of SQL from the 1,913 lines of comma separated values that I received.&lt;/p&gt;
&lt;h2&gt;Another Practical Use: Generating Public Properties from your Private Member Fields&lt;/h2&gt;
&lt;p&gt;One other use I will go over, and use it whenever I have to create a class with an inordinate amount of private fields, is to automatically generate public properties. Visual Studio does this but it can only do one at a time, and if you have many projects in your solution, you will notice that it has to "prepare files for refactoring" for about 5 minutes. Eclipse is instant, but I won't go into IDE differences. Here is a sample class that I will be "refactoring".&lt;/p&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/snap5.jpg" border="0" width="285" height="156" /&gt;&lt;/p&gt;
&lt;p&gt;Here's a good regular expression to read the lines that contain the private members&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^\tprivate ([a-zA-Z]+) _([a-zA-Z0-9]+);$&lt;br /&gt;It's important to not include the underscore in the second group. Here is the replace text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \0 // the whole match contains the ending semicolon so there is no need to add it here&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \tpublic \1 \2 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \t\tget { return this._\2; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \t\tset { this._\2 = value; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \t}&lt;/p&gt;
&lt;h3&gt;The result&lt;/h3&gt;
&lt;p&gt;&lt;img src="/Uploads/Gallery/blog/jtc/snap6.jpg" border="0" width="450" height="648" /&gt;&lt;/p&gt;
&lt;p&gt;If you're like me and like to keep all your private/protected members in one spot and all properties in another, you can just copy the list of private/protected members, exclude the "\0" from the replace regular expression, and paste the resulting text where you want it in the class file. Get creative with some comments too!&amp;nbsp; Also, if you're like me, you use lowercase private members, instead of the underscore as I have here.&amp;nbsp; So just don't forget to replace your getters and setters with the correct variable name after you run the replace, lest you get infinite loops.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This type of problem may come up infrequently, but there may be other problems where writing a whole one-off program to read the file, parse it, maybe even write directly to the database instead of generating SQL, that may just be infeasible, and you may never use it again. It is a valuable skill to be able to choose the right tool for the job.&lt;br /&gt;Stay tuned for the next part in this series.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=IO0qCwBO"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=L9ogwYK3"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=8CGxkts5"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=8CGxkts5" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=hrxrjhcR"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=DgdvHdk9"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=DgdvHdk9" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/mYiHrJK9sGQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Jason)</author><pubDate>Fri, 01 Aug 2008 12:00:00 EST</pubDate><guid isPermaLink="false">122</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=212&amp;title=Tools_of_the_Trade_Using_EditPlus_2_to_Generate_Code</feedburner:origLink></item><item><title>jQuery Style ASP.NET Form Validators</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/CNJGBmQQ8ZA/blog.aspx</link><description>&lt;h2&gt;Making it Happen&lt;/h2&gt;
&lt;p&gt;The first thing I did was use &lt;a href="http://www.getfirebug.com" target="_blank"&gt;firebug &lt;/a&gt;to dissect the ASP.NET validation code that is included in all pages and identify the events and function that I needed to hijack. Then, I cooked up a few new javascript functions to handle the field highlights and focus change. The way I overrided the default&amp;nbsp;ASP.NET functionality without traditional inheritance was using the "last one wins" rule, where I essentially just redefined the ASP.NET javascript validation functions after they were instantiated in the resource.axd includes.&amp;nbsp;Because&amp;nbsp;my version of the ASP.NET functions is&amp;nbsp;written later in the HTML output stream, my code takes precedence and overrides the default behaviors.&amp;nbsp;To guarantee that my scripts are rendered&amp;nbsp;last, I had to&amp;nbsp;register the&amp;nbsp;include&amp;nbsp;in the Render() event handler of the page lifecycle, which I accessed through a shared,&amp;nbsp;base master page so that it would be global throughout our applications.&lt;/p&gt;
&lt;h2&gt;Long story short, here are the steps to jQuery Style&amp;nbsp;validation for ASP.NET:&lt;/h2&gt;
&lt;h3&gt;1. Create a CSS Class that allows you to highlight invalid inputs and display messages in a pretty way&lt;/h3&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;input.error  { background: #fed; border: 1px solid red; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;select.error { background: #fed; border: 1px solid red; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;label.error, .form-side-labels label.error, .form-top-labels label.error&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; 	display: block;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt; 	margin: 0 0 0 5px;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt; 	padding: 3px;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; 	width: auto;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; 	font-weight: bold;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt; 	color: #fff;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt; 	background: red;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;.form-top-labels label.error&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt; 	margin: 3px 0 0;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt; 	width: 416px;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;.form-top-labels .side-by-side label.error, .form-top-labels .side-by-side-last label.error { width: 200px; }&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;2. Override the Render event handler of your Page or MasterPage class to insert a reference to&amp;nbsp;your re-written event validation scripts&lt;/h3&gt;
&lt;div&gt;First, create an include file to contain the new javascripts. I called it validators.js. Here are the contents from that file:&lt;/div&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;ValidatorCommonOnSubmit = function() {                    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    ClearValidatorCallouts();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    var result = SetValidatorCallouts();                                                                                           &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;ValidatorValidate = function(val, validationGroup, &lt;span class="kwrd"&gt;event&lt;/span&gt;) {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    val.isvalid = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; ((&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(val.enabled) == &lt;span class="str"&gt;'undefined'&lt;/span&gt; || val.enabled != &lt;span class="kwrd"&gt;false&lt;/span&gt;) &amp;amp;&amp;amp; IsValidationGroupMatch(val, validationGroup)) {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(val.evaluationfunction) == &lt;span class="str"&gt;'function'&lt;/span&gt;) {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            val.isvalid = val.evaluationfunction(val);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!val.isvalid &amp;amp;&amp;amp; Page_InvalidControlToBeFocused == &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(val.focusOnError) == &lt;span class="str"&gt;'string'&lt;/span&gt; &amp;amp;&amp;amp; val.focusOnError == &lt;span class="str"&gt;'t'&lt;/span&gt;) {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                ValidatorSetFocus(val, &lt;span class="kwrd"&gt;event&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    ClearValidatorCallouts();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    SetValidatorCallouts(); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    ValidatorUpdateDisplay(val);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;SetValidatorCallouts = function()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;    var i;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;    var pageValid = &lt;span class="kwrd"&gt;true&lt;/span&gt;;                    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 0; i &amp;lt; Page_Validators.length; i++) {         &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;        var inputControl = document.getElementById(Page_Validators[i].controltovalidate);               &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Page_Validators[i].isvalid) {                                                        &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(pageValid)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                inputControl.focus();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;            WebForm_AppendToClassName(inputControl, &lt;span class="str"&gt;'error'&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;            pageValid = &lt;span class="kwrd"&gt;false&lt;/span&gt;;                                                     &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        }                        &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    }                    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; pageValid;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;ClearValidatorCallouts = function()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;    var i;                    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;    var invalidConrols = [];&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 0; i &amp;lt; Page_Validators.length; i++) {         &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;        var inputControl = document.getElementById(Page_Validators[i].controltovalidate);               &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;        WebForm_RemoveClassName(inputControl, &lt;span class="str"&gt;'error'&lt;/span&gt;);                                                  &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;    }                                        &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Next, we'll register this file as a javascript include at the latest point possible in the asp.net page lifecycle, which is Render(). This timing is what allows us to redefine the built ASP.NET functions.&lt;/p&gt;
&lt;div style="height: 200px;" class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Render(HtmlTextWriter writer)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;string&lt;/span&gt; validatorOverrideScripts = &lt;span class="str"&gt;"&amp;lt;script src=\"/js/validators.js\" type=\"text/javascript\"&amp;gt;&amp;lt;/script&amp;gt;"&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.ClientScript.RegisterStartupScript(&lt;span class="kwrd"&gt;this&lt;/span&gt;.GetType(), &lt;span class="str"&gt;"ValidatorOverrideScripts"&lt;/span&gt;, validatorOverrideScripts, &lt;span class="kwrd"&gt;false&lt;/span&gt;); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;base&lt;/span&gt;.Render(writer);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;3. Lastly, Add some validators to a web form and see it in action&lt;/h3&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Login Information&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="row"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="required"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            Email Address&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="subtle"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="txtEmail1"&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="large required email"&lt;/span&gt;  &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;                            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RequiredFieldValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="valEmail"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Display&lt;/span&gt;&lt;span class="kwrd"&gt;="Dynamic"&lt;/span&gt; &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="txtEmail1"&lt;/span&gt; &lt;span class="attr"&gt;ErrorMessage&lt;/span&gt;&lt;span class="kwrd"&gt;="Email Address is required."&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;span class="error"&amp;gt;Email Address is required.&amp;lt;/span&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RequiredFieldValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="valEmailAdd"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Display&lt;/span&gt;&lt;span class="kwrd"&gt;="Dynamic"&lt;/span&gt; &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="txtEmail1"&lt;/span&gt; &lt;span class="attr"&gt;ValidationExpression&lt;/span&gt;&lt;span class="kwrd"&gt;=".*@.{2,}\..{2,}"&lt;/span&gt; &lt;span class="attr"&gt;ErrorMessage&lt;/span&gt;&lt;span class="kwrd"&gt;="Email Address should be in name@domain.com format."&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;span class="error"&gt;&amp;lt;span class="error"&amp;gt;Email Address should be in name@domain.com format.&amp;lt;/span&amp;gt;&amp;lt;/&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="clear"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="row"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="required"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Password&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Textbox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="txtPassword"&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="large required"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Textbox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="clear"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="row"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="required"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Confirm Password&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="txtConPassword"&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="large required"&lt;/span&gt;  &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="clear"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;There you have it, all the utility of ASP.NET validation controls without the antiquated user experience. Feel free to &lt;a href="/Uploads/FileManager/ValidationDemo/ValidatorDemo.zip"&gt;download the source code&lt;/a&gt; and share the love!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CNJGBmQQ8ZA:SkAaMir3Vmg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CNJGBmQQ8ZA:SkAaMir3Vmg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CNJGBmQQ8ZA:SkAaMir3Vmg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CNJGBmQQ8ZA:SkAaMir3Vmg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CNJGBmQQ8ZA:SkAaMir3Vmg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=CNJGBmQQ8ZA:SkAaMir3Vmg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=CNJGBmQQ8ZA:SkAaMir3Vmg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/CNJGBmQQ8ZA" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Scott)</author><pubDate>Mon, 14 Jul 2008 12:00:00 EST</pubDate><guid isPermaLink="false">114</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=545&amp;title=jQuery_Style_ASPNET_Form_Validators</feedburner:origLink></item><item><title>Flash &amp; SEO - Is a Web Design Renaissance Looming?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/64bDt-QPtTY/blog.aspx</link><description>&lt;h2&gt;Yes, Bring on the&amp;nbsp;Flash&amp;nbsp;Intros!&lt;/h2&gt;
&lt;p&gt;Certainly there will be an increase in the use of Flash in web sites - in components definitely and whole sites more moderately. Flash opens a whole new range of design options that are more difficult to accomplish in XHTML. It adds sex appeal plain and simple. It has also been slowly, but increasingly been used in Rich Internet Applications (RIA) where user interface is plays an important role to the experience. Sites that have business requirements (retail, consumer goods especially) requiring a high level of design will most certainly be the early adopters (to the extent they aren't already building in Flash).&amp;nbsp; &lt;br id="l.9w1" /&gt;&lt;/p&gt;
&lt;h2&gt;No, no Flash Intro's&amp;nbsp;Please!&amp;nbsp;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;Yet, I do not think we will see the wide spread use so common in the beginning of the century. Flash is more expensive to develop and more difficult to maintain. And technologies like AJAX, have to some extent chipped away at the RIA side of things. I also think we have come a long way in creating web sites that are more user friendly. So many Flash sites are developed with cool in mind (or crafting a unique experience) and not the users. Except in the extreme reaches of the design community - I don't expect to see a repeat of that trend.&amp;nbsp; &amp;nbsp; &lt;br id="wzrh0" /&gt;&lt;/p&gt;
&lt;h2&gt;Several other questions to ponder:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;How good will it be in indexing Flash &lt;em id="ks3-"&gt;(I'm sure it will improve over time)&lt;/em&gt;&lt;br id="n6.b" /&gt;&lt;/li&gt;
&lt;li&gt;Will the other search engines follow suit? &lt;em id="ks3-0"&gt;(Yes)&lt;/em&gt;&lt;br id="uqwf" /&gt;&lt;/li&gt;
&lt;li&gt;Will indexing eventually include Microsoft's Flash competitor Silverlight &lt;em id="ks3-1"&gt;(Hmmm, not sure)&lt;/em&gt;&lt;br id="uqwf0" /&gt;&lt;/li&gt;
&lt;li&gt;Will Flash intros start to appear once again &lt;em id="ks3-2"&gt;(I think not - the web community has gotten much better a user based design)&lt;/em&gt;&lt;br id="iym:0" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cizt1"&gt;More info on Google indexing Flash for SEO&lt;br id="pelh0" /&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://googleblog.blogspot.com/2008/06/google-learns-to-crawl-flash.html" target="_blank" title="Google Learns to Crawl Flash (SEO)"&gt;Google Learns to Crawl Flash&lt;/a&gt; &lt;br id="hal00" /&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/2008/06/improved-flash-indexing.html" target="_blank" title="Flash and SEO for Google"&gt;Improved Flash Indexing&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=iS8W1UKq"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=m5rBJHmI"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=STyhQBaK"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=STyhQBaK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=qYAOtuQ7"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=xvWbcZ37"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=xvWbcZ37" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/64bDt-QPtTY" height="1" width="1"/&gt;</description><author>info@delphicsage.com (MP)</author><pubDate>Wed, 02 Jul 2008 12:00:00 EST</pubDate><guid isPermaLink="false">113</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=175&amp;title=Flash__SEO__Is_a_Web_Design_Renaissance_Looming</feedburner:origLink></item><item><title>Taking it Online - Moving From Client Based to Web Based Applications</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/FUQ_n8Ial6o/blog.aspx</link><description>&lt;p&gt;Ok, so not that many....well maybe in internet years. Now, we have a beautiful set of web standards brought to us by our friends at the &lt;a href="http://www.w3.org/" target="_blank"&gt;W3C&lt;/a&gt; that developers have finally started taking seriously.&amp;nbsp; The browsers are still terribly inconsistent and buggy, but they are starting to finally make some progress. All this, coupled with a few breakthrough ajax development frameworks (&lt;a href="http://jquery.com/" target="_blank"&gt;jquery&lt;/a&gt;, &lt;a href="http://mootools.net/" target="_blank"&gt;mootools&lt;/a&gt;, &lt;a href="http://developer.yahoo.com/yui/" target="_blank"&gt;YUI&lt;/a&gt;) and we now find ourselves in a renaissance for web application development. Above, I gave some examples of major breakthroughs that have taken traditional applications and moved them into the cloud. The thing is, the examples that I have provided are only the tip of the iceberg, the big obvoius examples. Every day, everyday companies are converting old client server, access and excel apps into web applications that can actually reproduce the rich user interface of a desktop application by using modern web development practices. Just think about it, no more corrupted office files, no more files locked for editing....true collaboration from anywhere at any time.&lt;/p&gt;
&lt;p&gt;I think the next step in this process will be the adoption of application development environments provided by the likes of &lt;a href="http://www.google.com/ig" target="_blank"&gt;Google &lt;/a&gt;and &lt;a href="/default.aspx?p=634" target="_blank"&gt;Facebook&lt;/a&gt; (among others). I can certainly see first hand that this will certainly take off because most businesses just don't have the infrastructure or manpower to create the type of environment that Google can provide for free. As an example, just look at the number of facebook apps that are out there already.&amp;nbsp;The real test for enterprise adoption will be whether or not larger&amp;nbsp;companies are willing trust Google or another provider to house their critical data.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=UAm0EmJ9"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=VpG5F3Fh"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=x79R9R2e"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=x79R9R2e" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=VPuMpclQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=k4v40Pqw"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=k4v40Pqw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/FUQ_n8Ial6o" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Scott)</author><pubDate>Tue, 24 Jun 2008 12:00:00 EST</pubDate><guid isPermaLink="false">106</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=166&amp;title=Taking_it_Online__Moving_From_Client_Based_to_Web_Based_Applications</feedburner:origLink></item><item><title>The Business Value of Web Redesign</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/q-OAxEi9bXU/blog.aspx</link><description>&lt;h1&gt;Visual Aesthetics in a Web Redesign Project &lt;br /&gt;&lt;/h1&gt;
&lt;p&gt;The visual look of a web site says A LOT. The first impression is always vital and more often than none, it will stick with the visitor for as long as they hear your name. Think about brands you know and what comes to mind. Imagery? Color? Pepsi=Blue. Coke=Red. Colors act as an identifier but we need to take it to the next level. Choosing the right colors for the right feeling is important as well as keeping in line with the brand itself. Overall creating the right aesthetic alignment is vital to representing the company in their market and for their audience. Overall, resonating with them to generate a memorable experience is key. All that being said, when we think about a redesign, we have a chance to make another significant impression. It will still be a first impression for some, but it will be the second for others and thats a great opportunity to renew their understanding of who you are or further impress them. Interesting how that works huh? Welcome to the ever-changing world of the web.&lt;br /&gt;&lt;br /&gt;We should also address trends and modernism in design. Its not always great to jump on the bandwagon in design since most of the time trends eventually feel dated, but since the web changes so fast we can often pull it off. I would never recommend creating a look that someone else has or just adopting the styles that every other designer does. I believe in delivering unique solutions to clients. But there is always stylistic treatments that communicate awareness of modern design to an audience. Everything from the choice of typeface, to color palette, to the use of a grid. So modernizing your site so its in tune with the latest styles of design can be important for your image. It will ultimately help with positioning your company or brand as being progressive.&lt;/p&gt;
&lt;table style="background-color: #dde7f0;" border="0" cellspacing="15" width="500"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;h2&gt;&lt;strong&gt;The Potential Business Value&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Presents your progressiveness as a company&lt;/li&gt;
&lt;li&gt;Refreshes your identity or position in your market&lt;/li&gt;
&lt;li&gt;Re-inforces emotional impact of your brand&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;&lt;br /&gt;&lt;/h1&gt;
&lt;h1&gt;Usability - Navigation &amp;amp; Architecture in Web Redesign&lt;br /&gt;&lt;/h1&gt;
&lt;p&gt;One of the most important considerations for any site is usability. Allowing visitors to get where they need to in the fastest way possible is vital. This does not mean putting links everywhere on everypage with large flashing buttons. What it does mean is that you should design with intuition. Make sensible decisions about the organization and use the aesthetic to create hierarchy and pace to the visit. This is where visual design and navigation should be woven seemlessly together. Be aware that information overload is frustrating and scary for visitors. You have about 5 seconds before you lose them if they are new visitors so navigation should be found easily and understood easily. The most effective navigation is always a mix of both what vistors are used to and what makes sense in your design.&lt;br /&gt;&lt;br /&gt;Redesign is an opportunity to improve this area. These things can almost always be improved. As you get to know your business more, or if your business changes, the structure of the site architecture can change. You should also take the time to assess the traffic and statistics for your site to see which pages were most visited or the paths chosen to get to a certain page and take that into consideration when re-evaluating your information architecture.&lt;/p&gt;
&lt;table style="background-color: #dde7f0;" border="0" cellspacing="15" width="500"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;h2&gt;&lt;strong&gt;The Potential Business Value&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Makes your site easier to use&lt;/li&gt;
&lt;li&gt;Serves visitors the information clearly&lt;/li&gt;
&lt;li&gt;Prioritizes desired actions&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;&lt;br /&gt;&lt;/h1&gt;
&lt;h1&gt;Functionality &amp;amp; Web Redesign&amp;nbsp; Projects&lt;br /&gt;&lt;/h1&gt;
&lt;p&gt;Functionality, while often relative to the type of project, can be crucial in a redesign. This is the chance to make your site a tool for your business. Obviously there are many ways to improve functionality, but the first step is to asses what you really need your site to do for you. (thats a whole other discussion for another day... coming soon!) Social networking and other forms of social media may be on the agenda for your company but for the sake of touching on something that we think everyone can benefit from we will talk about the step toward content management and applications. &lt;br /&gt;&lt;br /&gt;Using a CMS (content management system) to manage content has become common practice for many. Whether its a custom system with bells and whistles created specifically to handle exactly what you need, if its a basic system sold out of the box, or a free open source publication tool like Wordpress or Moveable Type with a CMS plugin, just about everyone can benefit from a CMS. With the options that exist right now, you can find a system thats most appropriate and/or cost effective for your company. A discussion about what your site needs to do for your business will get you started in choosing the right type of system. &lt;br /&gt;&lt;br /&gt;Applications are another consideration for your site. Do you need users to interact with your site? Does there need to be an exchange of information? Do you need to process information that you collect from visitors or even your own employees? These are questions that require very specific answers with specific solutions. Technology has advanced to a point where many previously offline processes can be managed over the web and taking advantage of those changes can be incredibly beneficial. Things we couldn't do yesteryear are now possible.... All your dreams will come true now. Where have you been? ; )&lt;/p&gt;
&lt;table style="background-color: #dde7f0;" border="0" cellspacing="15" width="500"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;h2&gt;&lt;strong&gt;The Potential Values&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Improves user experience&lt;/li&gt;
&lt;li&gt;Creates interaction with visitors&lt;/li&gt;
&lt;li&gt;Empowers your company to strategically manage your content&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;&lt;br /&gt;&lt;/h1&gt;
&lt;h1&gt;Content's Impact on Redesign Projects &lt;br /&gt;&lt;/h1&gt;
&lt;p&gt;The last value offered in a redesign is the opportunity to revise site wide content. Most likely your business has changed over the last few years. A redesign is an opportunity to refresh your identity, and assess whether or not the content you are providing is important and worthwhile to your audience. Make sure your content is speaking in the tone that reflects who you are. You could change this anytime you like but it has more of an impact if its done in conjunction with a visual change. But its not just about identity and perception on the web, its also writing your content with SEO (search engine optimization) in mind. This is a strategic process that should be given attention on an ongoing basis.&lt;/p&gt;
&lt;table style="background-color: #dde7f0;" border="0" cellspacing="15" width="500"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;h2&gt;&lt;strong&gt;The Potential Business Value&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Content alignment with a refreshed identity&lt;/li&gt;
&lt;li&gt;Development of SEO rich content&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;&lt;br /&gt;&lt;/h2&gt;
&lt;h2&gt;Conclusions About the Business Value of a Web Redesign Project&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;A redesign can impact your business in whatever way you choose.&amp;nbsp; It can be with a refreshed professional look, manageable content, enhanced functionality... or idealistically, all of the above together. It can also be used to motivate and unify your employees, strengthening your brand internally as well as externally. The beauty of the web is that its ever-changing.&amp;nbsp; Take advantage of the latest technologies to better empower your business. Audiences are becoming more accessible everyday as we depend more and more on the internet in today's world. A redesign is an opportunity to make your site a more powerful means of communication with your audience. You should always be evaluating your site's role in reaching your business goals. The question to always ask yourself is:&amp;nbsp; Am I effectively using my site to connect with my audience in ways that will contribute to the growth of my business?&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=50PpHQdx"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=Zog2KSAh"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=ZnP5nnlO"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=ZnP5nnlO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=9BrPisay"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=8JPv6jWr"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=8JPv6jWr" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/q-OAxEi9bXU" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Cliff)</author><pubDate>Thu, 05 Jun 2008 12:00:00 EST</pubDate><guid isPermaLink="false">105</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=162&amp;title=The_Business_Value_of_Web_Redesign</feedburner:origLink></item><item><title>An Actual Conversation. Happening Right Now.</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/OHe-VYJlvFU/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=xlDpg0bj"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=0xbgPWEs"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=j81UFXGX"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=j81UFXGX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=dAZBcWGN"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=UjEtuK6s"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=UjEtuK6s" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/OHe-VYJlvFU" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Jessica)</author><pubDate>Thu, 05 Jun 2008 12:00:00 EST</pubDate><guid isPermaLink="false">100</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=163&amp;title=An_Actual_Conversation_Happening_Right_Now</feedburner:origLink></item><item><title>Using .Net 3.x Lambda Expressions to Write More Concise Code</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/44IObv-gRnM/blog.aspx</link><description>&lt;div style="background-color: #dde7f0; padding: 7px; margin-top: 7px; margin-bottom: 7px; font-size: 11px;"&gt;public class MyClass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string FilePath1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string FilePath2;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Save()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.LastSaved = DateTime.Now;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // saves it somewhere, such as a database.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DateTime LastSaved;&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;public class BusinessLogicClass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private bool deleteProperty1 = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private bool deleteProperty2 = true;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string DoSomething(string PropertyValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* does something*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return PropertyValue + PropertyValue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void BindDataObject(MyClass MyInstance)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // binds the instance of MyClass to, let's say the display fields on the page.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // and let's say it to be called whenever MyInstance gets Saved because it &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // displays the LastSavedDate.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void MainCode(MyClass MyInstance)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property1 = "hello.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property2 = "world.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;string oldFilePath = MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath1&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;;&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (File.Exists(MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath1&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;))&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath1&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath1&lt;/span&gt;&lt;span style="color: #0000ff;"&gt; = "";&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowDeletedFeedbackMessage(MyInstance, oldFilePath);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath1&lt;/span&gt;&lt;span style="color: #0000ff;"&gt; = "";&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowFileDoesNotExistFeedbackMessage(MyInstance, oldFilePath);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt; string oldFilePath = MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath2&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;;&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (File.Exists(MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath2&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;))&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath2&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath2&lt;/span&gt;&lt;span style="color: #0000ff;"&gt; = "";&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowDeletedFeedbackMessage(MyInstance, oldFilePath);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FilePath2&lt;/span&gt;&lt;span style="color: #0000ff;"&gt; = "";&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowFileDoesNotExistFeedbackMessage(MyInstance, oldFilePath);&lt;/span&gt;&lt;br style="color: #0000FF;" /&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;
&lt;p&gt;And let's say, for argument's sake, that one can't think of good way around the difference other than some mechanism to pass in some type of wrapper to the property as argument for their method.&amp;nbsp; In .Net 1.x, this was already available via the PropertyInfo object, and the code probably would have gone something like this:&lt;/p&gt;
&lt;div style="background-color: #dde7f0; padding: 7px; margin-top: 7px; margin-bottom: 7px; font-size: 11px;"&gt;public void MainCode (MyClass MyInstance)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property1 = "hello.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property2 = "world.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this. DeleteFile(MyInstance, "FilePath1");&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this. DeleteFile(MyInstance, "FilePath2");&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;protected void DeleteFile(MyClass MyInstance, string PropertyName)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PropertyInfo fileProperty = MyInstance.GetType().GetProperty(PropertyName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string oldFilePath = (string) fileProperty.GetValue(MyInstance, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (File.Exists(oldFilePath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileProperty.SetValue(MyInstance, "", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowDeletedFeedbackMessage(MyInstance, oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileProperty.SetValue(MyInstance, "", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowFileDoesNotExistFeedbackMessage(MyInstance, oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;
&lt;p&gt;Not a bad improvement.&amp;nbsp; All we had to do was pass in a string of the name of the property we were concerned about.&amp;nbsp; However, we lost the type-checking on the class, the property, and a compile-time check if the class even had a property of the string we passed in.&amp;nbsp; The last one being very problematic when it comes to typos or if we decide to later change the property name.&lt;br /&gt;Now if we pause to think about it, in the case above, getting a property is very much like a method with the signature string GetFilePath(MyClass MyInstance) and setting a property very much like a method with a signature void SetFilePath(MyClass MyInstance, string FilePath).&amp;nbsp; So maybe we can use delegates instead of the PropertyInfo for passing in the information.&amp;nbsp; Unfortunately passing in anonymous delegates were somewhat clunky in terms of syntax in .Net 2.0.&amp;nbsp; Now with .Net 3.5, we should hopefully be able to do so more easily with lambda expressions.&amp;nbsp; Instead of having to create what might start to feel like superfluous delegate types, we'll use the .Net built in delegate types Func&amp;lt; MyClass, string &amp;gt; (available now in .Net 3.x) for the Get and Action&amp;lt;MyClass, string&amp;gt; (available since .Net 2.0) for the Set.&lt;/p&gt;
&lt;div style="background-color: #dde7f0; padding: 7px; margin-top: 7px; margin-bottom: 7px; font-size: 11px;"&gt;public void MainCodeRewrite (MyClass MyInstance)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property1 = "hello.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property2 = "world.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.DeleteFile ( MyInstance,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myClass =&amp;gt; myClass.FilePath1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (myClass, filePath) =&amp;gt; myClass.FilePath1 = filePath);&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.DeleteFile ( MyInstance,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myClass =&amp;gt; myClass.FilePath2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (myClass, filePath) =&amp;gt; myClass.FilePath2 = filePath);&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;protected void DeleteFile (MyClass MyInstance,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Func&amp;lt;MyClass, string&amp;gt; GetProperty,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Action&amp;lt;MyClass, string&amp;gt; SetProperty)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string oldFilePath = GetProperty(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (File.Exists(oldFilePath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetProperty(MyInstance, "");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowDeletedFeedbackMessage(MyInstance, oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetProperty(MyInstance, "");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowFileDoesNotExistFeedbackMessage(MyInstance, oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;
&lt;p&gt;Hmmm... Well, using lambda expressions did turn out less clunky than the old .Net 2.0 syntax (see below), but still more clunky than passing a simple, single string of the property name.&lt;/p&gt;
&lt;div style="background-color: #dde7f0; padding: 7px; margin-top: 7px; margin-bottom: 7px; font-size: 11px;"&gt;// .Net 2.0 version of passing in anonymous delegates&lt;br /&gt;this.DeleteFile (MyInstance,&lt;br /&gt;delegate(MyClass myClass) { return myClass.FilePath1; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate(MyClass myClass, string FilePath) { myClass.FilePath1 = FilePath; });&lt;/div&gt;
&lt;p&gt;So we'll count the extra clunkiness as a con.&amp;nbsp; However, we got back compile-time type-checking and checking that the class actually has said property.&amp;nbsp; On the downside, and this might be due to not wanting to create new delegate types, but we're now passing in two delegates that are logically coupled and have a more specific abstract meaning than just what their signatures would indicate (Func&amp;lt;MyClass, string&amp;gt; could be intended to be a lot of things, not just a property wrapper).&amp;nbsp; While the called method signature might hint that those arguments are meant to be simple wrappers to the same property (and the method documentation could also explicitly say so), the person eye-balling just MainCodeRewrite won't immediately or necessarily see that and could be scratching their heads at what these nameless lambda expressions are supposed to be and not be one hundred percent confident that they're related to each other.&amp;nbsp; This would also get exasperated if there are more than one properties in a scenario (though, I off the top of my head, I would have to imagine if your method has more than two properties as parameters, my gut feeling would be to re-examine if it's getting too complicated).&lt;br /&gt;So as a possible solution to this ambiguity issue, we could introduce a class.&amp;nbsp; For the sake of properties, we're really only concerned with it having a Get and a Set method (I'll just call them Get and Set, rather than mimic PropertyInfo's convention of GetValue and SetValue since those are the only two methods/properties I'm putting on the object.).&lt;/p&gt;
&lt;div style="background-color: #dde7f0; padding: 7px; margin-top: 7px; margin-bottom: 7px; font-size: 11px;"&gt;public class PropertyWrapper&amp;lt;TClass, TProperty&amp;gt;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public PropertyWrapper() { }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public PropertyWrapper(&amp;nbsp;&amp;nbsp; Func&amp;lt;TClass, TProperty&amp;gt; GetMethod, Action&amp;lt;TClass, TProperty&amp;gt; SetMethod)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Initialize(GetMethod, SetMethod);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Initialize(&amp;nbsp;&amp;nbsp; Func&amp;lt;TClass, TProperty&amp;gt; GetMethod, &amp;nbsp;Action&amp;lt;TClass, TProperty&amp;gt; SetMethod)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.getMethod = GetMethod;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setMethod = SetMethod;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public virtual TProperty Get(TClass Instance)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.getMethod(Instance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public virtual void Set(TClass Instance, TProperty PropertyValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setMethod(Instance, PropertyValue);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Func&amp;lt;TClass, TProperty&amp;gt; getMethod;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Action&amp;lt;TClass, TProperty&amp;gt; setMethod;&lt;br /&gt;}&lt;br /&gt;This is roughly how it would go using that class.&lt;br /&gt;public void MainCode (MyClass MyInstance)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property1 = "hello.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyInstance.Property2 = "world.xls";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PropertyWrapper&amp;lt;MyClass, string&amp;gt; filePath1Property = new PropertyWrapper&amp;lt;MyClass, string&amp;gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myClass =&amp;gt; myClass.FilePath1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (myClass, filePath) =&amp;gt; myClass.FilePath1 = filePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.DeleteFile (MyInstance, filePath1Property);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.deleteProperty2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PropertyWrapper&amp;lt;MyClass, string&amp;gt; filePath2Property = new PropertyWrapper&amp;lt;MyClass, string&amp;gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myClass =&amp;gt; myClass.FilePath2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (myClass, filePath) =&amp;gt; myClass.FilePath2 = filePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.DeleteFile (MyInstance, filePath2Property);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;protected void DeleteFile (MyClass MyInstance,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPropertyWrapper&amp;lt;MyClass, string&amp;gt; FilePathProperty)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string oldFilePath = FilePathProperty.Get(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (File.Exists(oldFilePath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilePathProperty.Set(MyInstance, "");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowDeletedFeedbackMessage(MyInstance, oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilePathProperty.Set(MyInstance, "");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyInstance.Save();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.BindDataObject(MyInstance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowFileDoesNotExistFeedbackMessage(MyInstance, oldFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;
&lt;p&gt;So... the new class introduces some more clunkiness, but the calling code is now more intuitively readable.&amp;nbsp; The gains seem less obvious than the jump from PropertyInfo to delegates, but is more of my preference after giving both a test run. I also originally used an interface so my ability to wrap properties wouldn't be tied to this delegate strategy, along with a few other things that I won't go into, to help give me flexibility on which strategies seemed most useful given a situation.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=nMUNk8fv"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=ffnPPDu6"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=ROjlHdGM"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=ROjlHdGM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=sCeKwkCm"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=LhoAi7yn"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=LhoAi7yn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/44IObv-gRnM" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Mark S.)</author><pubDate>Fri, 30 May 2008 12:00:00 EST</pubDate><guid isPermaLink="false">97</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=131&amp;title=Using_Net_3x_Lambda_Expressions_to_Write_More_Concise_Code</feedburner:origLink></item><item><title>Brown Bag Lunch: Agile Development for Non-Developers</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/g6zEgtvIbSA/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=g6zEgtvIbSA:X4DgGowbFnY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=g6zEgtvIbSA:X4DgGowbFnY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=g6zEgtvIbSA:X4DgGowbFnY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=g6zEgtvIbSA:X4DgGowbFnY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=g6zEgtvIbSA:X4DgGowbFnY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=g6zEgtvIbSA:X4DgGowbFnY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=g6zEgtvIbSA:X4DgGowbFnY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/g6zEgtvIbSA" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Scott)</author><pubDate>Tue, 27 May 2008 12:00:00 EST</pubDate><guid isPermaLink="false">99</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=509&amp;title=Brown_Bag_Lunch_Agile_Development_for_NonDevelopers</feedburner:origLink></item><item><title>How to Create a DHTML Gantt Chart Control</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/qsUxEWou2Ds/blog.aspx</link><description>&lt;div&gt;&lt;a name="2"&gt;&lt;/a&gt;
&lt;h2&gt;How do I create a Gantt Chart?&lt;/h2&gt;
&lt;p&gt;There are two things you need to create a chart: the task information and a place on the webpage for the chart. The first bit is just like the example above. You need to know what tasks there are, how long each one takes, what prerequisite relationships exist, and when the project will start. The control also needs a place on the webpage, so you need a reference to an HTML element on the page.&lt;/p&gt;
&lt;p&gt;Here is an example of how to create the chart seen above.&lt;/p&gt;
&lt;pre style="line-height: 1.4; font-size: 10pt; width: 100%; background-color: #DDE7F0; padding: 8px;"&gt;&lt;tt&gt;&amp;lt;html&amp;gt;&lt;br /&gt;  &amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;div id="chart1"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;script&amp;gt;&lt;br /&gt;      // The constructor takes one parameter which is either the&lt;br /&gt;      // ID of the HTML element or a reference to the element&lt;br /&gt;      // that will contain the Gantt Chart.&lt;br /&gt;      var chart = new DS.GanttChart("chart1");&lt;br /&gt;      chart.start_date = new Date(Date.parse("May 15, 2008"));&lt;br /&gt;      &lt;br /&gt;      // The task's constructor takes the task's name and duration.&lt;br /&gt;      var design = new DS.GanttTask("Design Control", 2);&lt;br /&gt;      var code = new DS.GanttTask("Write Code", 3);&lt;br /&gt;      var describe = new DS.GanttTask("Describe Purpose", 1);&lt;br /&gt;      var clean_up = new DS.GanttTask("Code Clean-up", 1);&lt;br /&gt;      var documentation = new DS.GanttTask("Documentation", 2);&lt;br /&gt;      var blog_post = new DS.GanttTask("Blog Post", 1);&lt;br /&gt;      &lt;br /&gt;      code.requires(design);&lt;br /&gt;      describe.requires(design);&lt;br /&gt;      clean_up.requires(code);&lt;br /&gt;      documentation.requires(code);&lt;br /&gt;      blog_post.requires(documentation);&lt;br /&gt;      blog_post.requires(describe);&lt;br /&gt;      &lt;br /&gt;      chart.add_task(design);&lt;br /&gt;      chart.add_task(code);&lt;br /&gt;      chart.add_task(documentation);&lt;br /&gt;      chart.add_task(clean_up);&lt;br /&gt;      chart.add_task(describe);&lt;br /&gt;      chart.add_task(blog_post);&lt;br /&gt;      &lt;br /&gt;      chart.schedule();&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/tt&gt;&lt;/pre&gt;
&lt;p&gt;The code is about as simple as the facts listed in the first example. One difference is that once all of the tasks are added you must call &lt;tt&gt;chart.schedule()&lt;/tt&gt;. The &lt;tt&gt;schedule&lt;/tt&gt; method figures out when each task can be done and renders the graphical content of the chart control.&lt;/p&gt;
&lt;p&gt;The chart doesn't know how many tasks you're going to add and it doesn't try to guess. It makes no sense to re-render the control each time a task is added. So, you have to tell the chart control that you're done adding tasks.&lt;/p&gt;
&lt;a name="3"&gt;&lt;/a&gt;
&lt;h2&gt;What options does the chart control have?&lt;/h2&gt;
&lt;table border="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Option &lt;/th&gt;&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Description &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.width&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Sets the width, in pixels, of the chart display area. The total width of the control is the width of the task list plus this width.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.show_tooltips&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;A boolean value that determines whether or not tooltips are shown when the user mouses over a task bar on the graph.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.allow_tooltip_copy&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;A boolean value that determines whether or not the contents of the tooltips can be copied by pressing Ctrl + C.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
The Gantt Chart Control also has publicly accessible methods and properties.    
&lt;table border="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Method/Property &lt;/th&gt;&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Description &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.schedule()&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Schedules each task and renders the graphical content of the chart.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.add_task(task)&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Adds a task to the chart. This does &lt;strong&gt;not&lt;/strong&gt; automatically call schedule() to refresh the chart.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.remove_task(task)&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Removes the specified task from the chart. This does &lt;strong&gt;not&lt;/strong&gt; automatically call schedule() to refresh the chart.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.start_date&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;This property stores the starting date of the project.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;chart.end_date&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;This property stores the ending date of the project. The value of &lt;tt&gt;end_date&lt;/tt&gt; is set when &lt;tt&gt;schedule()&lt;/tt&gt; is called.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
The Gantt Task object has the following methods and properties:    
&lt;table border="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Method/Property &lt;/th&gt;&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Description &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task(name, duration)&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;The constructor takes the task's name and duration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task.requires(t)&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Appends task &lt;tt&gt;t&lt;/tt&gt; to the task's list of prerequisites.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task.name&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;The name of the task.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task.duration&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;The duration (in days) of the task.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task.actual_start_date&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;The date when work on the task will begin. This is set when &lt;tt&gt;schedule()&lt;/tt&gt; is called.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task.actual_end_date&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;The date when work on the task will end. This is set when &lt;tt&gt;schedule()&lt;/tt&gt; is called.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;&lt;tt&gt;task.bar_div&lt;/tt&gt;&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;The div that is the graphical representation of the task on the project timeline.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;a name="4"&gt;&lt;/a&gt;
&lt;h2&gt;What files are needed to use the Gantt Chart control?&lt;/h2&gt;
&lt;table border="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;File &lt;/th&gt;&lt;th style="color: #000; text-align: center; background-color: #bdf; padding: 8px;"&gt;Description &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;date.js&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Adds the &lt;tt&gt;format()&lt;/tt&gt; method to JavaScript's Date object. Used in formatting titles in the chart's grid and for formatting the tooltip's caption.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;gantt.js&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Contains all code for the GanttChart and GanttTask objects.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;main.js&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Includes helper functions used by gantt.js and tooltip.js.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;tooltip.js&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Library for drawing tooltips on the Gantt Chart. If this file is not included, the Gantt Charts will not show tooltips but all other functionality will remain.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;wz_jsgraphics.js&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;Walter Zorn's JavaScript Vector Graphics Library (&lt;a href="http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm"&gt;link&lt;/a&gt;). This is used to draw the lines that connect bars on the chart with their prerequisites.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;gantt.css&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;This file is not required, but the CSS classes it contains must be defined for the Gantt Chart to display properly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;task-bar.png and&lt;br /&gt;task-bar-light.png&lt;/td&gt;
&lt;td style="line-height: 1.4; background-color: #eee; padding: 8px;"&gt;These are the default images (as defined in gantt.css) used for the bars on the Gantt Chart. Any images will do as long as the CSS is set correctly.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;a name="5"&gt;&lt;/a&gt;
&lt;h2&gt;Notes for Developers&lt;/h2&gt;
&lt;p&gt;The chart control contains many more publicly accessible members than those listed above. There are references to many of the HTML elements used and the structure of the elements is documented in gantt.js. This is done so event handlers can be added and other modifications can easily be made to extend the functionality of the chart control.&lt;/p&gt;
&lt;p&gt;The Gantt chart control has been tested in IE6, Safari 3.1 (on Windows XP), Firefox 2.0, and Opera 9.5 Beta. There's a minor display issue with tooltips in IE6, but other than that everything works.&lt;/p&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qsUxEWou2Ds:VPZJo7SoqsU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qsUxEWou2Ds:VPZJo7SoqsU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qsUxEWou2Ds:VPZJo7SoqsU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qsUxEWou2Ds:VPZJo7SoqsU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qsUxEWou2Ds:VPZJo7SoqsU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=qsUxEWou2Ds:VPZJo7SoqsU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=qsUxEWou2Ds:VPZJo7SoqsU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/qsUxEWou2Ds" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Robert)</author><pubDate>Tue, 20 May 2008 12:00:00 EST</pubDate><guid isPermaLink="false">95</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=542&amp;title=How_to_Create_a_DHTML_Gantt_Chart_Control</feedburner:origLink></item><item><title>Choosing a Content Management System: 11 Factors for Buy vs. Build</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/1sF3Txy-s-U/blog.aspx</link><description>&lt;h1&gt;To Buy&amp;nbsp;or Build a CMS?&lt;/h1&gt;
&lt;p&gt;Below is a list of the&amp;nbsp;key questions to ask when considering whether to buy or build a Content Management System.&lt;/p&gt;
&lt;p&gt;1. What sort of release schedule exists - minor and major&lt;/p&gt;
&lt;p&gt;2. Will I need access to the source code now or in the future&lt;/p&gt;
&lt;p&gt;3. If I need to get out, what would that scenario entail&lt;/p&gt;
&lt;p&gt;4. The stability of the vendor - especially SaaS&lt;/p&gt;
&lt;p&gt;5. What support options are available&lt;/p&gt;
&lt;p&gt;6. How big is the install base&lt;/p&gt;
&lt;p&gt;7. How vibrant is the supporting community&lt;/p&gt;
&lt;p&gt;8. How widely adopted is the CMS&lt;/p&gt;
&lt;p&gt;9. How much can I bend it to fit my requirements if needed&lt;/p&gt;
&lt;p&gt;10. What language and database are utilized? Are they in-sync with the skills you have in-house&lt;/p&gt;
&lt;p&gt;11. Implement vs. customize - these are two different thing&lt;/p&gt;
&lt;h1&gt;Our Approach to Content Management Systems&lt;/h1&gt;
&lt;p&gt;At Delphic Sage we've consider ourselves a consulting company more so than a traditional digital agency. This stems from our focus on listening and understanding a client's business goals and objectives first. We then assess how to best use &lt;a href="/home/solutions/web-design.aspx" title="web design"&gt;web design&lt;/a&gt;, &lt;a href="/home/solutions/web-development.aspx" title="Web Development"&gt;web development&lt;/a&gt; and &lt;a href="/home/solutions/digital-marketing.aspx" title="digital marketing"&gt;digital marketing&lt;/a&gt; to achieve those goals. When it comes to selection of a &lt;a href="/home/solutions/our-skills/content-management-system.aspx" title="Content Management System (CMS)"&gt;Content Management System (CMS)&lt;/a&gt; the same approach applies. Whether to buy or build depends on your short and long term business requirements. We use a mixed approach of custom (developed from our code base) and &lt;a href="http://www.sitecore.com/" target="_blank" title="Sitecore"&gt;Sitecore&lt;/a&gt;, a leading CMS for middle market to enterprise size organizations. The approach we choose depends on each client's requirements.&lt;br /&gt;&lt;br /&gt;If you're just beginning to look at the various CMS offerings, I recommend checking out &lt;a href="http://www.cmswire.com/" target="_blank" title="CMS Wire"&gt;CMS Wire&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=P7MJIem7"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=gWDedRlN"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=9UtnXV56"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=9UtnXV56" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=2bgSp2bl"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=TtycnVNh"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=TtycnVNh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/1sF3Txy-s-U" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Mark P.)</author><pubDate>Tue, 13 May 2008 12:00:00 EST</pubDate><guid isPermaLink="false">87</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=119&amp;title=Choosing_a_Content_Management_System_11_Factors_for_Buy_vs_Build</feedburner:origLink></item><item><title>Choosing an Interactive Agency: Thoughts From the Agency Side</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/oS5i5WZdjOE/blog.aspx</link><description>&lt;h1&gt;What Kind of Skills Do I Need?&lt;/h1&gt;
&lt;p&gt;Once you have made a check list of your project requirements, prioritize which are most important. Typical skills you will need from an interactive agency for the initial web design and development project and on an ongoing basis include:&lt;br id="i1m60" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interactive strategy&lt;br id="sha:0" /&gt;&lt;/li&gt;
&lt;li&gt;Web design and rich media&lt;br id="in-.0" /&gt;&lt;/li&gt;
&lt;li&gt;Web and application development&lt;/li&gt;
&lt;li&gt;Systems integration&lt;/li&gt;
&lt;li&gt;Business Analysis&lt;br id="mfq20" /&gt;&lt;/li&gt;
&lt;li&gt;Information architecture (UI and usability)&lt;br id="sha:1" /&gt;&lt;/li&gt;
&lt;li&gt;Search engine optimization&lt;/li&gt;
&lt;li&gt;Digital marketing campaigns - email, viral, community building&lt;/li&gt;
&lt;li&gt;Content Management System (CMS)&lt;/li&gt;
&lt;li&gt;Web analytics&lt;br id="zmlb0" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Where to Start When Choosing an Interactive Agency?&lt;/h1&gt;
&lt;p&gt;There are so many variations of what people look for in an interactive agency today - web and graphic design firms, web development and systems integration, packaged software vendors, advertising agencies, digital marketing shops and so on, can all fill aspects of your requirements. Certainly all of them will have strengths and weaknesses. So where to start?&lt;br id="utdd0" /&gt;&lt;br id="utdd1" /&gt;If you are an enterprise-size company, you will have existing providers and preferred vendor programs, not to mention the likelihood of many firms actively knocking on your door. If you are searching in this scenario, I would hazard a guess that your existing firms are getting stale and you are looking for fresh ideas. Middle market and smaller companies typically have a harder time starting. Here are a few ideas:&lt;br id="c5sc1" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ask your colleagues - nothing beats a referral&lt;/li&gt;
&lt;li&gt;Use your professional network - phone and email, as well as tools like &lt;a href="http://www.linkedin.com/" target="_blank" title="LinkedIn"&gt;LinkedIn&lt;/a&gt; &lt;br id="r9mo0" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com" target="_blank" title="Google"&gt;Google&lt;/a&gt; and other search engines - check organic and cost per click results&lt;/li&gt;
&lt;li&gt;Directories - professional and trade organizations (including your own industry)&lt;br id="ssfz0" /&gt;&lt;/li&gt;
&lt;li&gt;When all else fails - surf the web and look for sites you like (sometimes "View Page Source" will provide a site credit)&lt;br id="ssfz1" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Narrowing the Field of Interactive Agencies&lt;/h1&gt;
&lt;p&gt;Now you have a big broad list of probably too many interactive agencies. Here are a few ideas to begin the narrowing process: &lt;br id="z0ga1" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Budget - what can you afford? Expect to find pricing all over the map, driven primarily by size and skill of the interactive agency&lt;br id="q6m90" /&gt;&lt;/li&gt;
&lt;li&gt;Size - are you looking for a boutique, specialty firm or a large full-service agency&lt;/li&gt;
&lt;li&gt;Experience - how long have they been in business, how many engagements &amp;amp; ongoing clients&lt;/li&gt;
&lt;li&gt;Skills - which ones are most important to you - strategy, technical, design or marketing&lt;br id="mfq21" /&gt;&lt;/li&gt;
&lt;li&gt;Geography - this matters less and less these days, but certainly you want the ability to have some face time through the project&lt;br id="cg:v0" /&gt;&lt;/li&gt;
&lt;li&gt;Industry - do you need the firm to have industry expertise (healthcare, big pharma, financial services are prime examples)&lt;br id="qlk40" /&gt;&lt;/li&gt;
&lt;li&gt;Niche - other niche players often focus around special services such as community web sites, technical platforms, Flash&lt;br id="lz-b0" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;What Value Will They Bring to the Table?&lt;/h1&gt;
&lt;p&gt;At Delphic Sage, we place a great emphasis on our ability to bring value to the process. Beware of interactive agencies that position themselves as experts and you as a necessary evil. Be equally concerned with firms that will get the deer in headlights look when the going gets tough.&amp;nbsp; &lt;br id="w3vj0" /&gt;&lt;br id="w3vj1" /&gt;From the very beginning, your interactive agency should want to learn and understand your business - web site project aside. By doing so, at each stage of the game they will be able to provide tangible business value on an ongoing basis. When the relationship is considered by both parties to be a partnership rather than vendor, both sides will benefit.&lt;/p&gt;
&lt;h1&gt;Process&lt;/h1&gt;
&lt;p&gt;So, how do you go about the selection process? It depends on how well you know the candidate firms, as well as how experienced you are in choosing an interactive agency. &lt;br id="sfn40" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Request for Information (RFI) - if you still have a lot of firms, this typical exploratory approach gives you a chance to ask questions and narrow the field to a select few&lt;br id="sfn43" /&gt;&lt;/li&gt;
&lt;li&gt;Request for Proposal (RFP) - getting down to brass tacks, this structured approach allows you to compare apples to apples (not usually an easy thing to do) &lt;br id="w1h70" /&gt;&lt;/li&gt;
&lt;li&gt;Free Form Proposals - allow the interactive agency to provide a proposal in their format&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Keep in mind that RFP's, especially when they come out of the blue and there is no chance for the agency to even meet you, will typically be met with a level of skepticism. Especially if you make it overly onerous. So, make sure you spend some time in considering your requirements. It's amazing how many are poorly crafted.&lt;br id="x_jz0" /&gt;&lt;/p&gt;
&lt;h1&gt;Assessing the Proposal&lt;/h1&gt;
&lt;p&gt;Now you have a series of proposals to review. What are the key elements to look for in the review?&lt;br id="aw:v0" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scope - do they understand what you are trying to accomplish with this project&lt;br id="ib:s0" /&gt;&lt;/li&gt;
&lt;li&gt;Process - is the framework solid, but flexible enough to meet your requirements&lt;/li&gt;
&lt;li&gt;Skill - do they have the right skill sets for your project &lt;br id="k8xh0" /&gt;&lt;/li&gt;
&lt;li&gt;Price - are the costs clearly outlined, including scope change order process&lt;/li&gt;
&lt;li&gt;Timeline - how long will it take to deliver (beware the overly aggressive timelines)&lt;br id="eurs0" /&gt;&lt;/li&gt;
&lt;li&gt;Personnel - who will work on the project&lt;br id="z_ho0" /&gt;&lt;/li&gt;
&lt;li&gt;Trust - make sure to get at least three referrals &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Be sure that your team has agreed on the criteria for decision making. This can be a formal worksheet or an informal bulleted list with weights. &lt;br id="m9bh0" /&gt;&lt;/p&gt;
&lt;h1&gt;Personal Connection &amp;amp; Trust&lt;/h1&gt;
&lt;p&gt;At the end of the day, when buying professional services, you are buying people. Do NOT short change this aspect of the decision. If you are uncomfortable with the people from the beginning, it's only going to get worse. Choose people with whom you feel you can have a comfortable, professional relationship. You do not want a new best friend, but chemistry is critical.&lt;br id="dqt50" /&gt;&lt;br id="dqt51" /&gt;So, be sure to spend some quality time with the prospective candidate firms. This includes not only preliminary sales meetings, but also a visit to their office. This will give you a chance to meet the extended team (especially the Project and/or Account Managers), as well as get a feel for their culture. Does it fit with your team and company culture? Do they need to interact with an extended team, such as your CMS software vendor or your advertising agency? Keep all these items in mind. &lt;br id="s0ea1" /&gt;&lt;/p&gt;
&lt;h1&gt;Other Resources to Help in Choosing an Interactive Agency&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.hansoninc.com/AboutUs/ChoosingAgency.aspx" target="_blank" title="Choosing and Interactive Agency"&gt;Choosing an Interactive Agency&lt;br id="m1bu0" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.imediaconnection.com/content/11127.asp" target="_blank" title="How to Choose an Interactive Agency"&gt;How to Choose an Interactive Agency&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.clickz.com/showPage.html?page=838251" target="_blank" title="How to Hire an Interactive Agency"&gt;How to Hire an Interactive Agency&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.embarcgroup.com/content/expertise/expert-forum/detail/q/id/10" target="_blank" title="Choosing the Right Interactive Firm"&gt;Choosing the Right Interactive Firm&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://my.advisor.com/articles.nsf/aid/09068" target="_blank" title="Choose the Right Web Development Firm for You"&gt;Choose the Right Web Development Firm for You&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br id="wppj4" /&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=yec3518K"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=oQq0yF2B"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=Bqz2n6CB"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=Bqz2n6CB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=mJ0zKoBu"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=ckJv1dL7"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=ckJv1dL7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/oS5i5WZdjOE" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Mark P.)</author><pubDate>Sun, 04 May 2008 12:00:00 EST</pubDate><guid isPermaLink="false">78</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=118&amp;title=Choosing_an_Interactive_Agency_Thoughts_From_the_Agency_Side</feedburner:origLink></item><item><title>New CMS and Content Migration</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/DnMHZxjdj5g/blog.aspx</link><description>&lt;p&gt;So, what's a web team to do? Well, some better tips from the article include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do a full content inventory &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Identify process efficienies &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Be wary of hyperlink and bookmarking&lt;/li&gt;
&lt;li&gt;Quality Assurance is critical&lt;/li&gt;
&lt;li&gt;Assess the cost / value proposition for automation vs. manual entry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The last bullet is the one that is often least understood. Sure, many times a script can be written to get content from one database to another. A lot depends on the database strcutures, but the bigger issue has more to do with how the content is used in the new CMS. Normally, features and content that are critical to the enhancemnts in the new site are not in the old structure (or at least not easily re-purposed). So, even if you do get the content over smoothly, you still need to go back over in order to build an effective new web site.&lt;/p&gt;
&lt;p&gt;Whatever you decide, form a plan early to tackle the issue.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=Ooz0FNr5"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=sr8rENkS"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=vAOwDYFD"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=vAOwDYFD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=za7Jsi4O"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=66TjqzX0"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=66TjqzX0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/DnMHZxjdj5g" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Mark P.)</author><pubDate>Tue, 22 Apr 2008 12:00:00 EST</pubDate><guid isPermaLink="false">71</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=117&amp;title=New_CMS_and_Content_Migration</feedburner:origLink></item><item><title>Open Source and the Design Community</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/O92Xcn3W6iQ/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=aiAkaOl1"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=4ZxyJ5Vz"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=El1esw0t"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=El1esw0t" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=QmxKp68G"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=F2FbBZBB"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=F2FbBZBB" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/O92Xcn3W6iQ" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Mark P.)</author><pubDate>Mon, 07 Apr 2008 12:00:00 EST</pubDate><guid isPermaLink="false">20</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=116&amp;title=Open_Source_and_the_Design_Community</feedburner:origLink></item><item><title>Top Social Sites Every Business Should Know About</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ecO6y95kvjU/blog.aspx</link><description>&lt;h1&gt;Promotion and Social Bookmarking&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://digg.com/" target="_blank"&gt;Digg &lt;/a&gt;- Allows users to submit and browse content, including news, videos/images and articles, by category with potential for mass promotion &lt;/li&gt;
&lt;li&gt;&lt;a href="http://del.icio.us/" target="_blank"&gt;Del.icio.us&lt;/a&gt; - Promote and tag items to this social bookmarking site with potential for extensive exposure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://reddit.com/" target="_blank"&gt;Reddit&lt;/a&gt; - Submit and search articles by category to drive traffic to your site. Earn points for quality submissions and gain more exposure by filtering to the top of the "hot" list.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.squidoo.com/" target="_blank"&gt;Squidoo&lt;/a&gt; - Great for driving traffic, the site allows you to create a lens on a specific topic, network with other experts and link back to your site or blog.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.frappr.com/" target="_blank"&gt;Frappr&lt;/a&gt; - Community mapper and guest book establishes interactivity for users, while recording visitor stats. Embed pages with maps and allow users to pinpoint their location in real time.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.furl.net/" target="_blank"&gt;Furl&lt;/a&gt; - Drive traffic to your site and promote urls with this social bookmarker that allows users tag and share favorite urls; includes commenting and recommendation feature.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=7TLibz2c"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=rvWYCI0m"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=49VzwwWG"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=49VzwwWG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=9wUYX2KF"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=LvuJ4z1P"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=LvuJ4z1P" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ecO6y95kvjU" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Sonal)</author><pubDate>Mon, 17 Mar 2008 12:00:00 EST</pubDate><guid isPermaLink="false">19</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=115&amp;title=Top_Social_Sites_Every_Business_Should_Know_About</feedburner:origLink></item><item><title>What To Read?</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/ZvqxDDrB12g/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZvqxDDrB12g:ZBGzcTRvB6s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZvqxDDrB12g:ZBGzcTRvB6s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZvqxDDrB12g:ZBGzcTRvB6s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ZvqxDDrB12g:ZBGzcTRvB6s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZvqxDDrB12g:ZBGzcTRvB6s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/delphicsage/blog?a=ZvqxDDrB12g:ZBGzcTRvB6s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/delphicsage/blog?i=ZvqxDDrB12g:ZBGzcTRvB6s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/ZvqxDDrB12g" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Scott)</author><pubDate>Fri, 07 Mar 2008 12:00:00 EST</pubDate><guid isPermaLink="false">21</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=548&amp;title=What_To_Read</feedburner:origLink></item><item><title>Google AdSense Changes</title><link>http://feedproxy.google.com/~r/delphicsage/blog/~3/3QTN3IN7KJA/blog.aspx</link><description>&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=o4iFGCEG"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=dxmmuUzX"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=7pOK74KN"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=7pOK74KN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=skAmeMjc"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/delphicsage/blog?a=b2NtFbUu"&gt;&lt;img src="http://feeds.feedburner.com/~f/delphicsage/blog?i=b2NtFbUu" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/delphicsage/blog/~4/3QTN3IN7KJA" height="1" width="1"/&gt;</description><author>info@delphicsage.com (Sonal)</author><pubDate>Tue, 04 Mar 2008 12:00:00 EST</pubDate><guid isPermaLink="false">18</guid><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.delphicsage.com/home/blog.aspx?d=113&amp;title=Google_AdSense_Changes</feedburner:origLink></item></channel></rss>

