<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Jay Harris is Cpt. LoadTest - dasControls</title>
    <link>http://www.cptloadtest.com/</link>
    <description>a .net developers blog on improving user experience of humans and coders</description>
    <language>en-us</language>
    <copyright>Jason Harris</copyright>
    <lastBuildDate>Thu, 01 Oct 2009 02:33:55 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.12105.0</generator>
    <managingEditor>jharris@harrisdesigns.com</managingEditor>
    <webMaster>jharris@harrisdesigns.com</webMaster>
    <item>
      <trackback:ping>http://www.cptloadtest.com/Trackback.aspx?guid=fa601dad-9032-43a8-ba67-195baa859d88</trackback:ping>
      <pingback:server>http://www.cptloadtest.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.cptloadtest.com/PermaLink,guid,fa601dad-9032-43a8-ba67-195baa859d88.aspx</pingback:target>
      <dc:creator>Jay Harris</dc:creator>
      <wfw:comment>http://www.cptloadtest.com/CommentView,guid,fa601dad-9032-43a8-ba67-195baa859d88.aspx</wfw:comment>
      <wfw:commentRss>http://www.cptloadtest.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fa601dad-9032-43a8-ba67-195baa859d88</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you have read my post on <a title="Blog Post: Misconceptions on JavaScript Plugins and SEO" href="http://www.cptloadtest.com/2009/08/31/Misconceptions-On-JavaScript-Plugins-And-SEO.aspx" target="_blank">Misconceptions
on JavaScript Plugins and SEO</a>, you know that search engines don't do JavaScript.
Though these plugins and libraries (such as one for pulling your latest Twitter Updates)
are nice for adding dynamic content for your users, they are just end-user flare and
add nothing to your SEO rankings. They also put an unnecessary tax on your users,
as each client browser is responsible for independently retrieving the external content;
the time for your page to render is extended by a few seconds as the client must first
download the JS library then make the JSON/AJAX request for your content.
</p>
        <p>
In response to this, I have created <a title="dasControls on CodePlex" href="http://dascontrols.codeplex.com/" target="_blank">dasControls</a>,
a library of custom macros for dasBlog (the blogging engine that powers <a href="http://www.cptloadtest.com">www.cptloadtest.com</a>).
I have started with content that is driven by custom JavaScript libraries and convert
the content and data retrieval into server-side controls. For now, dasControls contains
only a Twitter Status macro, but I intend to add more controls in the coming months.
</p>
        <p>
dasControls [Build 1.0.0.0] : <a title="Download dasControls v1.0" href="http://dascontrols.codeplex.com/Release/ProjectReleases.aspx" target="_blank">Download</a> | <a title="dasControls on CodePlex" href="http://dascontrols.codeplex.com/" target="_blank">Project
Page</a></p>
        <h3>dasControls TwitterStatus Macro
</h3>
        <p>
The TwitterStatus macro uses server-side retrieval of your Twitter data, eliminating
all client-side JavaScript calls for your tweets. By placing the Twitter request on
the server, the data is also available to any search engines that index your page.
Additionally, data is cached on the server, and new updates are retrieved based on
the polling interval you specify. When using real-time client-side JavaScript calls,
there is a 2-5 second delay for your end-users while the data is retrieved from Twitter;
by caching the data on the local server, this delay is eliminated, and the content
for each user is delivered from the local cache, lightening the load for the end-user
while avoiding an undue burden for high-traffic sites.
</p>
        <p>
          <strong>Macro Name:</strong> TwitterStatus 
<br /><strong>Macro Syntax:</strong> &lt;% TwitterStatus("user name"[, number
of tweets[, polling interval]])|dasControls %&gt;
</p>
        <ul>
          <li>
            <strong>User Name</strong> : String. Your Twitter handle. 
</li>
          <li>
            <strong>Number of Tweets</strong> : Integer. The number of tweets to retrieve and
display. [default: 10] 
</li>
          <li>
            <strong>Polling Interval </strong>: Integer. The number of minutes between each Twitter
retrieval. [default: 5] 
</li>
        </ul>
        <p>
          <strong>Relevant CSS:</strong>
        </p>
        <ul>
          <li>
            <strong>TwitterStatusItem</strong> : CSS class given to each Tweet, rendered as a
DIV. 
</li>
          <li>
            <strong>TwitterStatusTimestamp</strong> : CSS class given to each Tweet's timestamp
("32 minutes ago"), rendered as an inline SPAN within each Tweet element. 
</li>
        </ul>
        <h4>Using the Macro within a dasBlog Template
</h4>
        <p>
This macro is for use in the dasBlog HomeTemplate. The macro works just like any out-of-the
box macro, except that you must also include the alias specified within dasControls
entry the web.config (the value of the "macro" attribute). Your twitter
handle is required, though you can also optionally include the number of Tweets to
pull from Twitter (default: 10) and the number of minutes between each Twitter data
request (default: 5). Because everything happens on the server, there is no need to
include any of the Twitter JSON JavaScript libraries or HTML markup.
</p>
        <pre>&lt;% TwitterStatus("jayharris", 6, 5)|dasControls %&gt;</pre>
        <h3>Installation and Setup of dasControls
</h3>
        <p>
Download dasControls, extract the assembly into your dasBlog 'bin' directory.
</p>
        <p>
dasControls [Build 1.0.0.0] : <a title="Download dasControls v1.0" href="http://dascontrols.codeplex.com/Release/ProjectReleases.aspx" target="_blank">Download</a> | <a title="dasControls on CodePlex" href="http://dascontrols.codeplex.com/" target="_blank">Project
Page</a></p>
        <p>
Enable Custom Macros within your dasBlog installation, and add the Twitter macro to
your list of Custom Macros. 
<br />
First, ensure that the &lt;newtelligence.DasBlog.Macros&gt; section exists within
your web.config:
</p>
        <pre class="xml:nocontrols" name="code">&lt;newtelligence.DasBlog.Macros&gt;
  &lt;!-- Other Macro Libraries --&gt;
&lt;/newtelligence.DasBlog.Macros&gt;</pre>
        <p>
Second, ensure that the Macros Configuration Section is defined in to your web.config
&lt;configSections&gt;:
</p>
        <pre class="xml:nocontrols" name="code">&lt;configSections&gt;
  &lt;!—Other Configuration Sections --&gt;
  &lt;section requirePermission="false" name="newtelligence.DasBlog.Macros"
    type="newtelligence.DasBlog.Web.Core.MacroSectionHandler,
      newtelligence.DasBlog.Web.Core" /&gt;
&lt;/configSections&gt;</pre>
        <p>
Third, add the dasControls library entry to the dasBlog Macros section:
</p>
        <pre class="xml:nocontrols" name="code">&lt;newtelligence.DasBlog.Macros&gt;
  &lt;add macro="dasControls"
    type="HarrisDesigns.Controls.dasBlogControls.Macros,
      HarrisDesigns.Controls.dasBlogControls"/&gt;
&lt;/newtelligence.DasBlog.Macros&gt;</pre>
        <h4>
        </h4>
        <h3>Roadmap for dasControls
</h3>
        <p>
In the upcoming weeks and months, I plan on adding additional macros to the dasControls
library, including Delicious, Google Reader's Shared Items, and Facebook. If you're
interested in any others, or have any ideas, please let me know.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:238d54f0-5dde-4a71-b7ed-b73b8f647b47" class="wlWriterEditableSmartContent">Technorati
Tags: <a href="http://technorati.com/tags/dasBlog" rel="tag">dasBlog</a>,<a href="http://technorati.com/tags/dasControls" rel="tag">dasControls</a>,<a href="http://technorati.com/tags/Open+Source" rel="tag">Open
Source</a>,<a href="http://technorati.com/tags/CodePlex" rel="tag">CodePlex</a>,<a href="http://technorati.com/tags/SEO" rel="tag">SEO</a>,<a href="http://technorati.com/tags/Twitter" rel="tag">Twitter</a></div>
        <img width="0" height="0" src="http://www.cptloadtest.com/aggbug.ashx?id=fa601dad-9032-43a8-ba67-195baa859d88" />
      </body>
      <title>dasControls v1.0, a Twitter Status Macro for dasBlog</title>
      <guid isPermaLink="false">http://www.cptloadtest.com/PermaLink,guid,fa601dad-9032-43a8-ba67-195baa859d88.aspx</guid>
      <link>http://www.cptloadtest.com/2009/10/01/dasControls-V10-A-Twitter-Status-Macro-For-DasBlog.aspx</link>
      <pubDate>Thu, 01 Oct 2009 02:33:55 GMT</pubDate>
      <description>&lt;p&gt;
If you have read my post on &lt;a title="Blog Post: Misconceptions on JavaScript Plugins and SEO" href="http://www.cptloadtest.com/2009/08/31/Misconceptions-On-JavaScript-Plugins-And-SEO.aspx" target="_blank"&gt;Misconceptions
on JavaScript Plugins and SEO&lt;/a&gt;, you know that search engines don't do JavaScript.
Though these plugins and libraries (such as one for pulling your latest Twitter Updates)
are nice for adding dynamic content for your users, they are just end-user flare and
add nothing to your SEO rankings. They also put an unnecessary tax on your users,
as each client browser is responsible for independently retrieving the external content;
the time for your page to render is extended by a few seconds as the client must first
download the JS library then make the JSON/AJAX request for your content.
&lt;/p&gt;
&lt;p&gt;
In response to this, I have created &lt;a title="dasControls on CodePlex" href="http://dascontrols.codeplex.com/" target="_blank"&gt;dasControls&lt;/a&gt;,
a library of custom macros for dasBlog (the blogging engine that powers &lt;a href="http://www.cptloadtest.com"&gt;www.cptloadtest.com&lt;/a&gt;).
I have started with content that is driven by custom JavaScript libraries and convert
the content and data retrieval into server-side controls. For now, dasControls contains
only a Twitter Status macro, but I intend to add more controls in the coming months.
&lt;/p&gt;
&lt;p&gt;
dasControls [Build 1.0.0.0] : &lt;a title="Download dasControls v1.0" href="http://dascontrols.codeplex.com/Release/ProjectReleases.aspx" target="_blank"&gt;Download&lt;/a&gt; | &lt;a title="dasControls on CodePlex" href="http://dascontrols.codeplex.com/" target="_blank"&gt;Project
Page&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;dasControls TwitterStatus Macro
&lt;/h3&gt;
&lt;p&gt;
The TwitterStatus macro uses server-side retrieval of your Twitter data, eliminating
all client-side JavaScript calls for your tweets. By placing the Twitter request on
the server, the data is also available to any search engines that index your page.
Additionally, data is cached on the server, and new updates are retrieved based on
the polling interval you specify. When using real-time client-side JavaScript calls,
there is a 2-5 second delay for your end-users while the data is retrieved from Twitter;
by caching the data on the local server, this delay is eliminated, and the content
for each user is delivered from the local cache, lightening the load for the end-user
while avoiding an undue burden for high-traffic sites.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Macro Name:&lt;/strong&gt; TwitterStatus 
&lt;br /&gt;
&lt;strong&gt;Macro Syntax:&lt;/strong&gt; &amp;lt;% TwitterStatus(&amp;quot;user name&amp;quot;[, number
of tweets[, polling interval]])|dasControls %&amp;gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User Name&lt;/strong&gt; : String. Your Twitter handle. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Number of Tweets&lt;/strong&gt; : Integer. The number of tweets to retrieve and
display. [default: 10] 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Polling Interval &lt;/strong&gt;: Integer. The number of minutes between each Twitter
retrieval. [default: 5] 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Relevant CSS:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TwitterStatusItem&lt;/strong&gt; : CSS class given to each Tweet, rendered as a
DIV. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TwitterStatusTimestamp&lt;/strong&gt; : CSS class given to each Tweet's timestamp
(&amp;quot;32 minutes ago&amp;quot;), rendered as an inline SPAN within each Tweet element. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Using the Macro within a dasBlog Template
&lt;/h4&gt;
&lt;p&gt;
This macro is for use in the dasBlog HomeTemplate. The macro works just like any out-of-the
box macro, except that you must also include the alias specified within dasControls
entry the web.config (the value of the &amp;quot;macro&amp;quot; attribute). Your twitter
handle is required, though you can also optionally include the number of Tweets to
pull from Twitter (default: 10) and the number of minutes between each Twitter data
request (default: 5). Because everything happens on the server, there is no need to
include any of the Twitter JSON JavaScript libraries or HTML markup.
&lt;/p&gt;
&lt;pre&gt;&amp;lt;% TwitterStatus(&amp;quot;jayharris&amp;quot;, 6, 5)|dasControls %&amp;gt;&lt;/pre&gt;
&lt;h3&gt;Installation and Setup of dasControls
&lt;/h3&gt;
&lt;p&gt;
Download dasControls, extract the assembly into your dasBlog 'bin' directory.
&lt;/p&gt;
&lt;p&gt;
dasControls [Build 1.0.0.0] : &lt;a title="Download dasControls v1.0" href="http://dascontrols.codeplex.com/Release/ProjectReleases.aspx" target="_blank"&gt;Download&lt;/a&gt; | &lt;a title="dasControls on CodePlex" href="http://dascontrols.codeplex.com/" target="_blank"&gt;Project
Page&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Enable Custom Macros within your dasBlog installation, and add the Twitter macro to
your list of Custom Macros. 
&lt;br /&gt;
First, ensure that the &amp;lt;newtelligence.DasBlog.Macros&amp;gt; section exists within
your web.config:
&lt;/p&gt;
&lt;pre class="xml:nocontrols" name="code"&gt;&amp;lt;newtelligence.DasBlog.Macros&amp;gt;
  &amp;lt;!-- Other Macro Libraries --&amp;gt;
&amp;lt;/newtelligence.DasBlog.Macros&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Second, ensure that the Macros Configuration Section is defined in to your web.config
&amp;lt;configSections&amp;gt;:
&lt;/p&gt;
&lt;pre class="xml:nocontrols" name="code"&gt;&amp;lt;configSections&amp;gt;
  &amp;lt;!—Other Configuration Sections --&amp;gt;
  &amp;lt;section requirePermission=&amp;quot;false&amp;quot; name=&amp;quot;newtelligence.DasBlog.Macros&amp;quot;
    type=&amp;quot;newtelligence.DasBlog.Web.Core.MacroSectionHandler,
      newtelligence.DasBlog.Web.Core&amp;quot; /&amp;gt;
&amp;lt;/configSections&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Third, add the dasControls library entry to the dasBlog Macros section:
&lt;/p&gt;
&lt;pre class="xml:nocontrols" name="code"&gt;&amp;lt;newtelligence.DasBlog.Macros&amp;gt;
  &amp;lt;add macro=&amp;quot;dasControls&amp;quot;
    type=&amp;quot;HarrisDesigns.Controls.dasBlogControls.Macros,
      HarrisDesigns.Controls.dasBlogControls&amp;quot;/&amp;gt;
&amp;lt;/newtelligence.DasBlog.Macros&amp;gt;&lt;/pre&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;h3&gt;Roadmap for dasControls
&lt;/h3&gt;
&lt;p&gt;
In the upcoming weeks and months, I plan on adding additional macros to the dasControls
library, including Delicious, Google Reader's Shared Items, and Facebook. If you're
interested in any others, or have any ideas, please let me know.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:238d54f0-5dde-4a71-b7ed-b73b8f647b47" class="wlWriterEditableSmartContent"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/dasBlog" rel="tag"&gt;dasBlog&lt;/a&gt;,&lt;a href="http://technorati.com/tags/dasControls" rel="tag"&gt;dasControls&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open+Source" rel="tag"&gt;Open
Source&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CodePlex" rel="tag"&gt;CodePlex&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SEO" rel="tag"&gt;SEO&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Twitter" rel="tag"&gt;Twitter&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.cptloadtest.com/aggbug.ashx?id=fa601dad-9032-43a8-ba67-195baa859d88" /&gt;</description>
      <comments>http://www.cptloadtest.com/CommentView,guid,fa601dad-9032-43a8-ba67-195baa859d88.aspx</comments>
      <category>Blogging</category>
      <category>dasControls</category>
      <category>JavaScript</category>
      <category>SEO</category>
    </item>
  </channel>
</rss>