<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.no-ip.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>fractalnavel : metablog</title><link>http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx</link><description>Tags: metablog</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>tech notes: twitter aggregator refactoring #1</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-twitter-aggregator-refactoring-1.aspx</link><pubDate>Sat, 21 Mar 2009 21:26:31 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4890</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4890</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4890</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-twitter-aggregator-refactoring-1.aspx#comments</comments><description>&lt;p&gt;it usually takes me three rounds of coding to get something somewhat satisfactory - the original &amp;quot;just get it to work&amp;quot; phase, and two refactorings.&amp;#160; the first refactoring follows, with some notes in the comments for the next round:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;fractalnavel.CS.PostTwitter.cs      &lt;div class="divcode"&gt;       &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CommunityServer&lt;span class="TPoperator"&gt;.&lt;/span&gt;Blogs&lt;span class="TPoperator"&gt;.&lt;/span&gt;Components;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CookComputing&lt;span class="TPoperator"&gt;.&lt;/span&gt;XmlRpc;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS&lt;span class="TPoperator"&gt;.&lt;/span&gt;components;

&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPcomment"&gt;// TODO: &lt;/span&gt;
    &lt;span class="TPcomment"&gt;//  - log processing status; &lt;/span&gt;
    &lt;span class="TPcomment"&gt;//  - loop through multiple service/settings nodes (optionally post all together?)&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;class &lt;/span&gt;CMain
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;STAThread&lt;span class="TPbracket"&gt;]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;static void &lt;/span&gt;Main&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPbracket"&gt;[] &lt;/span&gt;args&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XmlDocument xmlSettings &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xmlSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Load&lt;span class="TPbracket"&gt;( &lt;/span&gt;args&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPnumber"&gt;0&lt;/span&gt;&lt;span class="TPbracket"&gt;] )&lt;/span&gt;; 
            GetAndPost gap &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;
                xmlSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;DocumentElement, 
                &lt;span class="TPbracket"&gt;(&lt;/span&gt;XmlRpcProxyGen&lt;span class="TPoperator"&gt;.&lt;/span&gt;Create&lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;IMetaWebLogNewPost&lt;span class="TPoperator"&gt;&amp;gt;&lt;/span&gt;&lt;span class="TPbracket"&gt;())&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;newPost 
                &lt;span class="TPbracket"&gt;)&lt;/span&gt;;

            &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Get&lt;span class="TPbracket"&gt;() ) &lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;else if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;PostNone &lt;span class="TPbracket"&gt;)&lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;nothin&amp;#39;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlRpcUrl&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;*** wherever it was put *** /metablog.ashx&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)] &lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public interface &lt;/span&gt;IMetaWebLogNewPost
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlRpcMethod&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;metaWeblog.newPost&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;newPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;blogid,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;username,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password,
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post,
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;publish
            &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    
&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;fractalnavel.CS.components.cs 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Serialization;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CommunityServer&lt;span class="TPoperator"&gt;.&lt;/span&gt;Blogs&lt;span class="TPoperator"&gt;.&lt;/span&gt;Components;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;components;

&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS&lt;span class="TPoperator"&gt;.&lt;/span&gt;components
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPcomment"&gt;// get xml, transform to post, post to blog.    &lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;GetAndPost
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;MakeNewPost _doPost;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;Settings _settings;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;XmlDocument _xmldocAll &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
        &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Empty;

        &lt;span class="TPkeyword1"&gt;public delegate string &lt;/span&gt;MakeNewPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;blogid,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;username,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password,
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post,
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;publish
            &lt;span class="TPbracket"&gt;)&lt;/span&gt;;

        &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlNode nodSettings &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;nodSettings, &lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;MetaWeblog&lt;span class="TPbracket"&gt;())&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;newPost &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlNode nodSettings, MakeNewPost DoPost &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            _doPost &lt;span class="TPoperator"&gt;= &lt;/span&gt;DoPost;
            _settings &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;Settings&lt;span class="TPbracket"&gt;) &lt;/span&gt;XmlUtils&lt;span class="TPoperator"&gt;.&lt;/span&gt;Deserialize &lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;Settings&lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;nodSettings &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;PostNone &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            get&lt;span class="TPbracket"&gt;{ &lt;/span&gt;&lt;span class="TPkeyword1"&gt;return &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;bPostNone; &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;PostBody
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            set &lt;span class="TPbracket"&gt;{&lt;/span&gt;_strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}&lt;/span&gt;
            
            &lt;span class="TPcomment"&gt;// TODO: add xsl parameter handling (will pass various settings)&lt;/span&gt;
            get 
            &lt;span class="TPbracket"&gt;{&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;_strPostBody &lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Empty &lt;span class="TPbracket"&gt;)&lt;/span&gt;
                    _strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;XmlUtils&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;_xmldocAll, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;hrefXsl &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;_strPostBody;
            &lt;span class="TPbracket"&gt;} &lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPcomment"&gt;/* 
        returns true if results contain status nodes
        ***twitter specific at the moment.***
        TODO: 
            - factor the href &amp;amp; success into a separate service interface, 
            - implement for each service, 
            - specify implementation class/assembly in config element, 
            - instantiate here, 
            - pass settings to service interface, 
            - and consume.
         */&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;Get&lt;span class="TPbracket"&gt;() &lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPcomment"&gt;// Tue%2C+27+Mar+2007+22%3A55%3A48+GMT&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;href &lt;span class="TPoperator"&gt;= &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;hrefGet &lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;?count=200&amp;amp;since=&amp;quot; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPbracket"&gt;((&lt;/span&gt;DateTime&lt;span class="TPoperator"&gt;.&lt;/span&gt;UtcNow&lt;span class="TPbracket"&gt;)&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;AddHours&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPoperator"&gt;- &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;hours &lt;span class="TPbracket"&gt;))&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            _xmldocAll&lt;span class="TPoperator"&gt;.&lt;/span&gt;LoadXml&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlUtils&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;( &lt;/span&gt;href, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;useridGet, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;pwdGet &lt;span class="TPbracket"&gt;) )&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;_xmldocAll&lt;span class="TPoperator"&gt;.&lt;/span&gt;SelectNodes&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;//status&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;))&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Count &lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPnumber"&gt;0&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;PostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPcomment"&gt;// returns postid&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strPostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;bPublish &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;true&lt;/span&gt;;
            DateTime dtNow &lt;span class="TPoperator"&gt;= &lt;/span&gt;DateTime&lt;span class="TPoperator"&gt;.&lt;/span&gt;Now;
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            post&lt;span class="TPoperator"&gt;.&lt;/span&gt;title &lt;span class="TPoperator"&gt;= &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;titleBlog &lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;dtNow&lt;span class="TPbracket"&gt;)&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;yyyy.MM.dd&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            post&lt;span class="TPoperator"&gt;.&lt;/span&gt;dateCreated &lt;span class="TPoperator"&gt;= &lt;/span&gt;dtNow;
            post&lt;span class="TPoperator"&gt;.&lt;/span&gt;description &lt;span class="TPoperator"&gt;= &lt;/span&gt;strPostBody;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;_doPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;idBlog, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;useridBlog, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;pwdBlog, post, bPublish&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    
        &lt;span class="TPcomment"&gt;/*
        Settings element attributes:
            hrefget - get: string (must return results as xml; bascially assuming a rest interface)
            useridGet, pwdget - get: authentication = userid, password (yeah, not very secure, need to do something different)
            hrefXsl - transform reference (url; this xslt is applied to the &amp;quot;get&amp;quot; xml, and will result in the post body)
            idBlog - post: destination blog
            useridBlog, pwdBlog - post: authentication (userid, password) (again, security issue)
            titleBlog - post title (appended with date)
            hours - how far back to look
            bPostNone - post when nothing was retrieved ?
        */&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;Serializable&lt;span class="TPbracket"&gt;()]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;Settings
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_hrefGet;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_useridGet;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_pwdGet;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_hrefXsl;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_idBlog;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_useridBlog;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_pwdBlog;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_titleBlog;
            &lt;span class="TPkeyword1"&gt;private int &lt;/span&gt;_intHours;
            &lt;span class="TPkeyword1"&gt;private bool &lt;/span&gt;_bPostNone;

            &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;Settings&lt;span class="TPbracket"&gt;() {}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hrefGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;hrefGet&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefGet;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefGet &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;useridGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;useridGet&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridGet;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridGet &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;pwdGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;pwdGet&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdGet;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdGet &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hrefXsl&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;hrefXsl&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefXsl;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefXsl &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;idBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;idBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_idBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_idBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;useridBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;useridBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;pwdBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;pwdBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;titleBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;titleBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_titleBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_titleBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hours&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public int &lt;/span&gt;hours&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_intHours;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_intHours &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;bPostNone&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;bPostNone&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_bPostNone;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_bPostNone &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    
&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;fractalnavel.components.cs 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;IO;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Net;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Text;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Serialization;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xsl;

&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;components
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;XmlUtils
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public static string &lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;url, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;user, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            HttpWebRequest request &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;HttpWebRequest&lt;span class="TPbracket"&gt;)&lt;/span&gt;HttpWebRequest&lt;span class="TPoperator"&gt;.&lt;/span&gt;Create&lt;span class="TPbracket"&gt;(&lt;/span&gt;url&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            request&lt;span class="TPoperator"&gt;.&lt;/span&gt;Credentials &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;NetworkCredential&lt;span class="TPbracket"&gt;(&lt;/span&gt;user, password&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            WebResponse response &lt;span class="TPoperator"&gt;= &lt;/span&gt;request&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetResponse&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            StreamReader reader &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StreamReader&lt;span class="TPbracket"&gt;(&lt;/span&gt;response&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetResponseStream&lt;span class="TPbracket"&gt;())&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;responseString &lt;span class="TPoperator"&gt;= &lt;/span&gt;reader&lt;span class="TPoperator"&gt;.&lt;/span&gt;ReadToEnd&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            reader&lt;span class="TPoperator"&gt;.&lt;/span&gt;Close&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;responseString;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public static string &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXmlHref, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXmlUserId, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXmlPassword, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXslHref &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XmlDocument xmlDoc &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xmlDoc&lt;span class="TPoperator"&gt;.&lt;/span&gt;LoadXml&lt;span class="TPbracket"&gt;( &lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;( &lt;/span&gt;strXmlHref, strXmlUserId, strXmlPassword &lt;span class="TPbracket"&gt;) )&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;xmlDoc, strXslHref &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPcomment"&gt;// TODO: add xsl parameter handling&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public static string &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlDocument xmlDoc, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXslHref &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XslTransform xsl &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XslTransform&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xsl&lt;span class="TPoperator"&gt;.&lt;/span&gt;Load&lt;span class="TPbracket"&gt;( &lt;/span&gt;strXslHref, &lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlUrlResolver&lt;span class="TPbracket"&gt;() )&lt;/span&gt;;
            StringBuilder sbResult &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StringBuilder&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            StringWriter swResult &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StringWriter&lt;span class="TPbracket"&gt;( &lt;/span&gt;sbResult &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            xsl&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;xmlDoc, &lt;span class="TPkeyword1"&gt;null&lt;/span&gt;, swResult, &lt;span class="TPkeyword1"&gt;null &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;sbResult&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}   &lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public static &lt;/span&gt;Object Deserialize &lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;T&lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;XmlNode node&lt;span class="TPbracket"&gt;) &lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XmlSerializer ser &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlSerializer&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword2"&gt;typeof&lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;T&lt;span class="TPbracket"&gt;) )&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;ser&lt;span class="TPoperator"&gt;.&lt;/span&gt;Deserialize&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlNodeReader&lt;span class="TPbracket"&gt;(&lt;/span&gt;node&lt;span class="TPbracket"&gt;))&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;Settings.xml 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class="TPkeyword1"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;encoding=&lt;span class="TPstring"&gt;&amp;quot;utf-8&amp;quot; &lt;/span&gt;?&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="TPcomment"&gt;!--
    TODO: 
        - use an array of settings nodes for separate services; 
        - specify service handler classs/assembly for items that need programmatic suport (eg, href) 
--&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;Settings 
    hrefGet=&lt;span class="TPstring"&gt;&amp;quot;http://twitter.com/statuses/user_timeline.xml&amp;quot; 
    &lt;/span&gt;useridGet=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;pwdGet=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;hrefXsl=&lt;span class="TPstring"&gt;&amp;quot;*** wherever it was put *** /GetAndPost.xsl&amp;quot; 
    &lt;/span&gt;idBlog=&lt;span class="TPstring"&gt;&amp;quot;*** destination weblog name ***&amp;quot; 
    &lt;/span&gt;useridBlog=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;pwdBlog=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;titleBlog=&lt;span class="TPstring"&gt;&amp;quot;a day in a life&amp;quot; 
    &lt;/span&gt;hours=&lt;span class="TPstring"&gt;&amp;quot;24&amp;quot; 
    &lt;/span&gt;bPostNone=&lt;span class="TPstring"&gt;&amp;quot;false&amp;quot; 
    &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;GetAndPost.xsl 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;?&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;xsl:stylesheet 
    &lt;/span&gt;&lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; 
    &lt;/span&gt;xmlns:xsl=&lt;span class="TPstring"&gt;&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;
    &lt;/span&gt;xmlns:user=&lt;span class="TPstring"&gt;&amp;quot;http://blogs.no-ip.org/fractalnavel&amp;quot;
    &lt;/span&gt;xmlns:msxsl=&lt;span class="TPstring"&gt;&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot;
    &lt;/span&gt;exclude-result-prefixes=&lt;span class="TPstring"&gt;&amp;quot;xsl user msxsl&amp;quot; 
    &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:output 
        &lt;/span&gt;method=&lt;span class="TPstring"&gt;&amp;#39;html&amp;#39; 
        &lt;/span&gt;omit-xml-declaration=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
        &lt;/span&gt;version=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot;
        &lt;/span&gt;encoding=&lt;span class="TPstring"&gt;&amp;quot;UTF-8&amp;quot;
        &lt;/span&gt;indent=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
        &lt;/span&gt;cdata-section-elements=&lt;span class="TPstring"&gt;&amp;quot;&amp;quot;
        &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt; &lt;/span&gt;
    
    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="TPcomment"&gt;!-- TODO: add parameters handling for settings from GetAndPost.Settings class --&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;/statuses&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTAll&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTHead&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                via @&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;a &lt;span class="TPkeyword3"&gt;href&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;http://www.twitter.com/*** who you are ***&amp;quot; &lt;/span&gt;target=&lt;span class="TPstring"&gt;&amp;quot;_blank&amp;quot; 
                &lt;/span&gt;title=&lt;span class="TPstring"&gt;&amp;quot;twitter!&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;*** who you are ***&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;a&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: in the last twenty-four hours:
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        
            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTBody&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:apply-templates &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot; &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:sort &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;position()&amp;quot; &lt;/span&gt;order=&lt;span class="TPstring"&gt;&amp;quot;descending&amp;quot; &lt;/span&gt;data-type=&lt;span class="TPstring"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:apply-templates&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTFoot&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                (pulled direct from twitter via custom job)
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            
        &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="TPkeyword5"&gt;span &lt;/span&gt;class=&lt;span class="TPstring"&gt;&amp;quot;spnLTItemDate&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;user:fnNormalizeDate(string(created_at))&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="TPkeyword5"&gt;span&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: 
        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;user:fnSetLinks(string(text))&amp;quot; &lt;/span&gt;disable-output-escaping=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;msxsl:&lt;span class="TPkeyword5"&gt;script language&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;JScript&amp;quot; &lt;/span&gt;implements-prefix=&lt;span class="TPstring"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    //&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;!&lt;span class="TPbracket"&gt;[&lt;/span&gt;CDATA&lt;span class="TPbracket"&gt;[
    
    &lt;/span&gt;function fnSetLinks&lt;span class="TPbracket"&gt;( &lt;/span&gt;strText &lt;span class="TPbracket"&gt;)
    {
        &lt;/span&gt;// embedded hrefs
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/&lt;span class="TPbracket"&gt;(&lt;/span&gt;http:\/\/\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;&lt;/span&gt;$&lt;span class="TPnumber"&gt;1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTLink\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        // twitter ids
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/@&lt;span class="TPbracket"&gt;(&lt;/span&gt;\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;@&amp;lt;a href=\&amp;quot;http://www.twitter.com/$1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTUser\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        // hash tags
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/#&lt;span class="TPbracket"&gt;(&lt;/span&gt;\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;http://search.twitter.com/search?q=%23$1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTHash\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        return strText;
    &lt;span class="TPbracket"&gt;}
    
    &lt;/span&gt;function fnNormalizeDate&lt;span class="TPbracket"&gt;(&lt;/span&gt;strDate&lt;span class="TPbracket"&gt;) {
        &lt;/span&gt;try &lt;span class="TPbracket"&gt;{
            &lt;/span&gt;// &lt;span class="TPstring"&gt;&amp;quot;Mon Mar 16 18:16:59 +0000 2009&amp;quot; &lt;/span&gt;to &lt;span class="TPstring"&gt;&amp;quot;2009.03.16 18:16&amp;quot;&lt;/span&gt;: 
            var rxMatch = /.&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;3&lt;/span&gt;&lt;span class="TPbracket"&gt;} (&lt;/span&gt;.&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;3&lt;/span&gt;&lt;span class="TPbracket"&gt;}) (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;}) (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;}&lt;/span&gt;:\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;})&lt;/span&gt;:\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;} &lt;/span&gt;\+\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;} (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;})&lt;/span&gt;/;
            strDate = strDate.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;rxMatch , 
                function&lt;span class="TPbracket"&gt;(&lt;/span&gt;strMatch, strMonth, strDay, strTime, strYear&lt;span class="TPbracket"&gt;)
                {
                        &lt;/span&gt;var dat = new Date&lt;span class="TPbracket"&gt;( &lt;/span&gt;strMonth + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strDay + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strYear + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strTime &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                        // months number is zero based ?!?  wtf
                        strMonth = &lt;span class="TPbracket"&gt;(&lt;/span&gt;dat.getUTCMonth&lt;span class="TPbracket"&gt;()&lt;/span&gt;+&lt;span class="TPnumber"&gt;1&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;.toString&lt;span class="TPbracket"&gt;()&lt;/span&gt;.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/^&lt;span class="TPbracket"&gt;(&lt;/span&gt;\d&lt;span class="TPbracket"&gt;)&lt;/span&gt;$/, &lt;span class="TPstring"&gt;&amp;quot;0$1&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                        return strYear + &lt;span class="TPstring"&gt;&amp;quot;.&amp;quot; &lt;/span&gt;+ strMonth + &lt;span class="TPstring"&gt;&amp;quot;.&amp;quot; &lt;/span&gt;+ strDay + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strTime; 
                &lt;span class="TPbracket"&gt;})&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;} &lt;/span&gt;catch&lt;span class="TPbracket"&gt;(&lt;/span&gt;e&lt;span class="TPbracket"&gt;) {
            &lt;/span&gt;strDate = e.message;
        &lt;span class="TPbracket"&gt;}
        &lt;/span&gt;return strDate ;
    &lt;span class="TPbracket"&gt;}

    &lt;/span&gt;//&lt;span class="TPbracket"&gt;]]&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;msxsl:&lt;span class="TPkeyword5"&gt;script&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i also need to reorganize the naming a bit.&amp;#160; i&amp;#39;ll reserve commentary until the last revisions are complete.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4890" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>guano machine</title><link>http://blogs.no-ip.org/fractalnavel/guano-machine.aspx</link><pubDate>Tue, 17 Mar 2009 21:32:35 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4877</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4877</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4877</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/guano-machine.aspx#comments</comments><description>&lt;p&gt;i poked around twitter a bit recently while I&amp;#39;ve been playing, and i noticed that there were basically two styles: the originally intended open-loop micro-blogging, and the chat.&amp;#160; people don&amp;#39;t seem to have figured out how to really use micro-blogging, they either fell back into chat patterns, or just compulsively post trivia.&amp;#160; the news channels aren&amp;#39;t so bad, but that&amp;#39;s what used to be professionally provided via rss from the news websites.&lt;/p&gt;  &lt;p&gt;so, i wonder: how has im traffic been faring lately ?&amp;#160; i bet it&amp;#39;s down by an amount corresponding to twitter use.&amp;#160; not sure what im&amp;#39;ing in public gets you. and twitter makes a lousy chat room.&lt;/p&gt;  &lt;div style="float:right;margin:10px auto 10px 20px;"&gt;&lt;object width="340" height="285"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PN2HAroA12w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PN2HAroA12w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;  &lt;p&gt;as for the micro blogging, what proportion of the updates out there are bodily function related ? &amp;quot;went to the gym&amp;quot; &amp;quot;got back from the gym&amp;quot; &amp;quot;at the gym&amp;quot; &amp;quot;tired / cold / hot / sleeping / stupid / omg, what&amp;#39;s this infection, my nuts have just dropped off!&amp;quot;.&amp;#160; does anyone really want to know that ?&amp;#160; does anyone really want &lt;em&gt;others&lt;/em&gt; to know that ?&lt;/p&gt;  &lt;p&gt;then there are those projecting &amp;quot;image&amp;quot;.&amp;#160; professional, cool, wacky, dark - all that self-indulgent cvrap.&lt;/p&gt;  &lt;p&gt;here&amp;#39;s what &lt;em&gt;i&lt;/em&gt; had in mind, and why i haven&amp;#39;t really used it, and why I&amp;#39;ve been tinkering with daily accumulation and posting of micro-posts:&amp;#160; sometimes i have quick thoughts, or a stream of thinking, that doesn&amp;#39;t quite go together in a longer coherent post yet.&amp;#160; but i want to capture that stuff that&amp;#39;s been getting lost to date.&amp;#160; stuff that i don&amp;#39;t email, im or talk to anyone about.&amp;#160; in other words, i&amp;#39;m trying to catch another source of information.&amp;#160; there are times when i&amp;#39;m just thinking about economics, or cosmogony, or metaphysics, or whatever.&amp;#160; a string of what-ifs, conjectures, speculations, maybe an aha or two.&amp;#160; and then they&amp;#39;re gone.&lt;/p&gt;  &lt;p&gt;so, maybe this new lighter weight tool might be of help there.&amp;#160; i&amp;#39;ll see.&amp;#160; now that i have my tools built, i&amp;#39;ll try it out, when i&amp;#39;m having one of those times.&amp;#160; like anything else, it&amp;#39;ll take practice.&amp;#160; and maybe it just won&amp;#39;t float at all.&amp;#160; expectations of the lowest order would be of help here.&lt;/p&gt;  &lt;p&gt;as for the twitter-world-as-it-is, as with any popular phenomena, there are a lot of critics popping up - and they&amp;#39;re right.&amp;#160; &lt;/p&gt;  &lt;p&gt;so sure, there&amp;#39;s unprecedented openness, but no one seems to know what do with it, on either end of the pipe.&amp;#160; it&amp;#39;s like i noted a long time ago, privacy is generally no big deal, outside of personal or institutional maliciousness.&amp;#160; ever seen someone else&amp;#39;s email ?&amp;#160; once you get over the voyeurism, it&amp;#39;s just boring crap.&amp;#160; but maybe we never get over the voyeurism.&lt;/p&gt;  &lt;p&gt;once upon a time i wanted to open up all exchanges anyway, making it able to delve into causality in new ways.&amp;#160; and it&amp;#39;s slowly been happening.&amp;#160; global mind ?&amp;#160; not yet.&amp;#160; a demonstration of illusory free will / consciousness ?&amp;#160; no one will pay attention (proving the point).&lt;/p&gt;  &lt;p&gt;so - i have a rock.&amp;#160; i wonder what i can bang with it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4877" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/i.c.k_2E00_/default.aspx">i.c.k.</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/_2800_e._2900_t_2E00_/default.aspx">(e.)t.</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: touching up</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-touching-up.aspx</link><pubDate>Tue, 17 Mar 2009 19:30:40 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4875</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4875</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4875</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-touching-up.aspx#comments</comments><description>&lt;p&gt;re &lt;a href="http://blogs.no-ip.org/fractalnavel/tech-notes-whistler-s-son.aspx"&gt;my recent playing&lt;/a&gt;, &amp;quot;final&amp;quot; xsl:&lt;/p&gt;  &lt;div class="divcode"&gt;   &lt;pre class="precode"&gt;    
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;?&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;xsl:stylesheet 
    &lt;/span&gt;&lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; 
    &lt;/span&gt;xmlns:xsl=&lt;span class="TPstring"&gt;&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;
    &lt;/span&gt;xmlns:user=&lt;span class="TPstring"&gt;&amp;quot;http://blogs.no-ip.org/fractalnavel&amp;quot;
    &lt;/span&gt;xmlns:msxsl=&lt;span class="TPstring"&gt;&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot;
    &lt;/span&gt;exclude-result-prefixes=&lt;span class="TPstring"&gt;&amp;quot;xsl user msxsl&amp;quot; 
    &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:output 
        &lt;/span&gt;method=&lt;span class="TPstring"&gt;&amp;#39;html&amp;#39; 
        &lt;/span&gt;omit-xml-declaration=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
        &lt;/span&gt;version=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot;
        &lt;/span&gt;encoding=&lt;span class="TPstring"&gt;&amp;quot;UTF-8&amp;quot;
        &lt;/span&gt;indent=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
        &lt;/span&gt;cdata-section-elements=&lt;span class="TPstring"&gt;&amp;quot;&amp;quot;
        &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt; &lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;/statuses&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTAll&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTHead&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                via @&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;a &lt;span class="TPkeyword3"&gt;href&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;http://www.twitter.com/fractalnavel&amp;quot; &lt;/span&gt;target=&lt;span class="TPstring"&gt;&amp;quot;_blank&amp;quot; 
                &lt;/span&gt;title=&lt;span class="TPstring"&gt;&amp;quot;twitter!&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;fractalnavel&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;a&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: in the last twenty-four hours:
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTBody&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:apply-templates &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot; &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:sort &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;position()&amp;quot; &lt;/span&gt;order=&lt;span class="TPstring"&gt;&amp;quot;descending&amp;quot; &lt;/span&gt;data-type=&lt;span class="TPstring"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:apply-templates&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTFoot&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                (pulled direct from twitter via custom job)
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="TPkeyword5"&gt;span &lt;/span&gt;class=&lt;span class="TPstring"&gt;&amp;quot;spnLTItemDate&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;user:fnNormalizeDate(string(created_at))&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="TPkeyword5"&gt;span&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: 
        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;user:fnSetLinks(string(text))&amp;quot; &lt;/span&gt;disable-output-escaping=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;msxsl:&lt;span class="TPkeyword5"&gt;script language&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;JScript&amp;quot; &lt;/span&gt;implements-prefix=&lt;span class="TPstring"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    //&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;!&lt;span class="TPbracket"&gt;[&lt;/span&gt;CDATA&lt;span class="TPbracket"&gt;[

    &lt;/span&gt;function fnSetLinks&lt;span class="TPbracket"&gt;( &lt;/span&gt;strText &lt;span class="TPbracket"&gt;)
    {
        &lt;/span&gt;// embedded hrefs
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/&lt;span class="TPbracket"&gt;(&lt;/span&gt;http:\/\/\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;&lt;/span&gt;$&lt;span class="TPnumber"&gt;1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTLink\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        // twitter ids
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/@&lt;span class="TPbracket"&gt;(&lt;/span&gt;\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;@&amp;lt;a href=\&amp;quot;http://www.twitter.com/$1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTUser\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        // hash tags
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/&lt;span class="TPbracket"&gt;(&lt;/span&gt;#\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;http://search.twitter.com/search?q=$1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTHash\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        return strText;
    &lt;span class="TPbracket"&gt;}

    &lt;/span&gt;function fnNormalizeDate&lt;span class="TPbracket"&gt;(&lt;/span&gt;strDate&lt;span class="TPbracket"&gt;) {
        &lt;/span&gt;try &lt;span class="TPbracket"&gt;{
            &lt;/span&gt;// &lt;span class="TPstring"&gt;&amp;quot;Mon Mar 16 18:16:59 +0000 2009&amp;quot; &lt;/span&gt;to &lt;span class="TPstring"&gt;&amp;quot;2009.03.16 18:16&amp;quot;&lt;/span&gt;: 
            var rxMatch = /.&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;3&lt;/span&gt;&lt;span class="TPbracket"&gt;} (&lt;/span&gt;.&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;3&lt;/span&gt;&lt;span class="TPbracket"&gt;}) (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;}) (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;}&lt;/span&gt;:\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;})&lt;/span&gt;:\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;} &lt;/span&gt;\+\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;} (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;})&lt;/span&gt;/;
            strDate = strDate.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;rxMatch , 
                function&lt;span class="TPbracket"&gt;(&lt;/span&gt;$&lt;span class="TPnumber"&gt;0&lt;/span&gt;, $&lt;span class="TPnumber"&gt;1&lt;/span&gt;, $&lt;span class="TPnumber"&gt;2&lt;/span&gt;, $&lt;span class="TPnumber"&gt;3&lt;/span&gt;, $&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;)
                {
                        &lt;/span&gt;var strMonth = $&lt;span class="TPnumber"&gt;1&lt;/span&gt;;
                        var strDay = $&lt;span class="TPnumber"&gt;2&lt;/span&gt;;
                        var strYear = $&lt;span class="TPnumber"&gt;4&lt;/span&gt;;
                        var strTime = $&lt;span class="TPnumber"&gt;3&lt;/span&gt;;
                        var dat = new Date&lt;span class="TPbracket"&gt;( &lt;/span&gt;strMonth + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strDay + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strYear + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strTime &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                        // months number is zero based ?!?  wtf
                        strMonth = &lt;span class="TPbracket"&gt;(&lt;/span&gt;dat.getUTCMonth&lt;span class="TPbracket"&gt;()&lt;/span&gt;+&lt;span class="TPnumber"&gt;1&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;.toString&lt;span class="TPbracket"&gt;()&lt;/span&gt;.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/^&lt;span class="TPbracket"&gt;(&lt;/span&gt;\d&lt;span class="TPbracket"&gt;)&lt;/span&gt;$/, &lt;span class="TPstring"&gt;&amp;quot;0$1&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                        return strYear + &lt;span class="TPstring"&gt;&amp;quot;.&amp;quot; &lt;/span&gt;+ strMonth + &lt;span class="TPstring"&gt;&amp;quot;.&amp;quot; &lt;/span&gt;+ strDay + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strTime; 
                &lt;span class="TPbracket"&gt;})&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;} &lt;/span&gt;catch&lt;span class="TPbracket"&gt;(&lt;/span&gt;e&lt;span class="TPbracket"&gt;) {
            &lt;/span&gt;strDate = e.message;
        &lt;span class="TPbracket"&gt;}
        &lt;/span&gt;return strDate ;
    &lt;span class="TPbracket"&gt;}

    &lt;/span&gt;//&lt;span class="TPbracket"&gt;]]&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;msxsl:&lt;span class="TPkeyword5"&gt;script&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;i think i can live with that for a while. the &lt;a title="future link !" href="http://blogs.no-ip.org/fractalnavel/a-day-in-a-life-2009-03-17.aspx"&gt;results will be evident later&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4875" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: whistler's son</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-whistler-s-son.aspx</link><pubDate>Mon, 16 Mar 2009 22:23:14 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4872</guid><dc:creator>fractalnavel</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4872</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4872</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-whistler-s-son.aspx#comments</comments><description>&lt;p&gt;scratch &lt;a href="http://blogs.no-ip.org/fractalnavel/tech-notes-whistling-in-the-dark.aspx"&gt;that last cvrap&lt;/a&gt;, replace the GetAndPostJob class with the following, making the whole thing a console app to run from the task scheduler:&lt;/p&gt;  &lt;div class="divcode"&gt;   &lt;pre class="precode"&gt;    &lt;span class="TPkeyword1"&gt;class &lt;/span&gt;CMain
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;STAThread&lt;span class="TPbracket"&gt;]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;static void &lt;/span&gt;Main&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPbracket"&gt;[] &lt;/span&gt;args&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPcomment"&gt;//do work&lt;/span&gt;
            XmlDocument xmldocSettings &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xmldocSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Load&lt;span class="TPbracket"&gt;( &lt;/span&gt;args&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPnumber"&gt;0&lt;/span&gt;&lt;span class="TPbracket"&gt;])&lt;/span&gt;;
            GetAndPost gap &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;xmldocSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;DocumentElement&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Get&lt;span class="TPbracket"&gt;() ) {&lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPbracket"&gt;} &lt;/span&gt;&lt;span class="TPkeyword1"&gt;else if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;xmldocSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;bPostNone&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value &lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;true&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;) {&lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;nothin&amp;#39;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlRpcUrl&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;http://blogs.no-ip.org/fractalnavel/metablog.ashx&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)] &lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public interface &lt;/span&gt;IMetaWebLogNewPost
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlRpcMethod&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;metaWeblog.newPost&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;newPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;blogid,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;username,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password,
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post,
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;publish&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;and replace the last couple of lines in the Post method:&lt;/p&gt;

&lt;div class="divcode"&gt;
  &lt;pre class="precode"&gt;    
            IMetaWebLogNewPost mwlProxy &lt;span class="TPoperator"&gt;= &lt;/span&gt;XmlRpcProxyGen&lt;span class="TPoperator"&gt;.&lt;/span&gt;Create&lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;IMetaWebLogNewPost&lt;span class="TPoperator"&gt;&amp;gt;&lt;/span&gt;&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;ret &lt;span class="TPoperator"&gt;= &lt;/span&gt;mwlProxy&lt;span class="TPoperator"&gt;.&lt;/span&gt;newPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;blogid, userid, pwd, p, bPublish&lt;span class="TPbracket"&gt;)&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;there&amp;#39;s really no good way to get an &amp;quot;at&amp;quot; functionality from cs tasks (unless there&amp;#39;s something undocumented; can&amp;#39;t tell from the obfuscated code).&amp;#160; i mean shoot, i was going to end up recreating the whole scheduler business, may as well just use the thing.&lt;/p&gt;

&lt;p&gt;duh.&lt;/p&gt;

&lt;p&gt;yeah, all the rest of the stuff needs cleaning, of course, but this will at least do what i want, &lt;em&gt;when&lt;/em&gt; i want.&lt;/p&gt;

&lt;p&gt;oh yeah - the argument to the app is the name of a file that contains the task node that used to be in communityserver.config, minus the &lt;a href="http://communityserver.com" target="_blank"&gt;community server&lt;/a&gt; specific stuff.&amp;#160; i suppose i could use an actual config file; this was a straight forward adaptation of the previous approach.&lt;/p&gt;

&lt;p&gt;whatever.&amp;#160; just getting things done.&amp;#160; i&amp;#39;m not in a very ocd mood.&amp;#160; that&amp;#39;s what happens with (b) fueled code, instead of (c).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4872" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: whistling in the dark</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-whistling-in-the-dark.aspx</link><pubDate>Mon, 16 Mar 2009 17:50:44 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4868</guid><dc:creator>fractalnavel</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4868</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4868</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-whistling-in-the-dark.aspx#comments</comments><description>&lt;p&gt;been playing with auto-capturing daily twittering &amp;amp; posting here.&amp;#160; not that i use twitter much; pehaps this auto-posting lack is why.&amp;#160; at first i tried&amp;#160; &lt;a href="http://www.loudtwitter.com" target="_blank"&gt;loudtwitter&lt;/a&gt;, but &lt;a href="http://communityserver.com" target="_blank"&gt;community server&lt;/a&gt; doesn&amp;#39;t have a way of accepting what it provides out of the box - email (needs cs enterprise license), atom, xmlrpc (what api?).&amp;#160; so i had it email to &lt;a href="http://www.tumblr.com" target="_blank"&gt;tumblr&lt;/a&gt;, and then mirrored the feed from there (needs cs pro license).&amp;#160; you may have seen the recent example of that.&amp;#160; either i did something grossly wrong somewhere, or either loudtwitter or tumblr is eating the markup.&amp;#160; and the post naming would cause problems with my current url rewriting scheme - i just noticed that.&amp;#160; huh - no wonder it didn&amp;#39;t post last night.&lt;/p&gt;  &lt;p&gt;none of this was very acceptable (or even workable).&amp;#160; i suppose i could have figured out what xmlrpc was being sent from loudtwitter and then used that (a more portable solution - still wopuld have the bad post naming).&amp;#160; funny that &lt;a title="google search" href="http://www.google.com/search?q=%22community+server%22+loudtwitter" target="_blank"&gt;there&amp;#39;s nothing about anyone doing this&lt;/a&gt; anyplace that i can see.&amp;#160; &lt;a title="i looked into this last spring" href="http://blogs.no-ip.org/fractalnavel/puttering.aspx"&gt;just me&lt;/a&gt;, i guess. and no, still no a.p.p. in cs2008.5sp1 (i upgraded last week).&lt;/p&gt;  &lt;p&gt;apparently, i chose the &amp;quot;roll your own&amp;quot; route (see below), but it&amp;#39;s not finished.&amp;#160; well, it works, but i need to tweak scheduling and formatting, and generalizing the configuration would be nice, as would fixing the credential security issue.&amp;#160; but hey, this is just for me.&amp;#160; all that detail stuff is a &lt;em&gt;lot&lt;/em&gt; of work.&lt;/p&gt;  &lt;p&gt;not a sterling example of code or design, but, well, any landing you can walk away from ...&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;fractalnavel.CS.Components.GetAndPostJob      &lt;div class="divcode"&gt;       &lt;pre class="precode"&gt;&lt;span class="TPcomment"&gt;/*
get xml, transform to post, post to blog.

***twitter specific at the moment.***

config is as follows for now, until controlpanel stuff is done:
    hrefget - get: string (must return results as xml; basically assuming a rest interface)
    useridGet, pwdget - get: authentication = userid, password (yeah, not very secure, need to do something different)
    hrefXsl - transform reference (url; this xslt is applied to the &amp;quot;get&amp;quot; xml, and will result in the post body)
    idBlog - post: destination blog
    useridBlog, pwdBlog - post: authentication (userid, password) (again, security issue)
    titleBlog - post title (appended with date)
    hours - how far back to look
    bPostNone - post when nothing was retrieved ?

also, should log processing status to events...
*/&lt;/span&gt;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;IO;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Net;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Text;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xsl;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CommunityServer&lt;span class="TPoperator"&gt;.&lt;/span&gt;Blogs&lt;span class="TPoperator"&gt;.&lt;/span&gt;Components;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;Telligent&lt;span class="TPoperator"&gt;.&lt;/span&gt;Tasks;


&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS&lt;span class="TPoperator"&gt;.&lt;/span&gt;Components
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPcomment"&gt;// the job&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;GetAndPostJob &lt;span class="TPoperator"&gt;: &lt;/span&gt;ITask
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;GetAndPostJob&lt;span class="TPbracket"&gt;()&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public void &lt;/span&gt;Execute&lt;span class="TPbracket"&gt;(&lt;/span&gt;XmlNode node&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPcomment"&gt;//do work&lt;/span&gt;
            GetAndPost gap &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;node&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Get&lt;span class="TPbracket"&gt;() ) {&lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPbracket"&gt;} &lt;/span&gt;&lt;span class="TPkeyword1"&gt;else if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;node&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;bPostNone&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value &lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;true&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;) {&lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;nothin&amp;#39;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPcomment"&gt;// the work&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;GetAndPost
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;XmlNode _nodSettings;
        &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_strPostBody;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;XmlDocument _xmldocAll &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
        
        &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlNode node &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            _nodSettings &lt;span class="TPoperator"&gt;= &lt;/span&gt;node;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;Get&lt;span class="TPbracket"&gt;() &lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;href &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hrefGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            &lt;span class="TPkeyword1"&gt;int &lt;/span&gt;intHours &lt;span class="TPoperator"&gt;= &lt;/span&gt;Int32&lt;span class="TPoperator"&gt;.&lt;/span&gt;Parse&lt;span class="TPbracket"&gt;(&lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hours&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPcomment"&gt;// Tue%2C+27+Mar+2007+22%3A55%3A48+GMT&lt;/span&gt;
            href &lt;span class="TPoperator"&gt;+= &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;?since=&amp;quot; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPbracket"&gt;((&lt;/span&gt;DateTime&lt;span class="TPoperator"&gt;.&lt;/span&gt;Now&lt;span class="TPbracket"&gt;)&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;AddHours&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPoperator"&gt;-&lt;/span&gt;intHours&lt;span class="TPbracket"&gt;))&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;userid &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;useridGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;pwd &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;pwdGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            _strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;( &lt;/span&gt;href, userid, pwd &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            _xmldocAll&lt;span class="TPoperator"&gt;.&lt;/span&gt;LoadXml&lt;span class="TPbracket"&gt;( &lt;/span&gt;_strPostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;_xmldocAll&lt;span class="TPoperator"&gt;.&lt;/span&gt;SelectNodes&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;//status&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;))&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Count &lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPnumber"&gt;0&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public void &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;()&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;href &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hrefXsl&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            XslTransform xsl &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XslTransform&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xsl&lt;span class="TPoperator"&gt;.&lt;/span&gt;Load&lt;span class="TPbracket"&gt;( &lt;/span&gt;href, &lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlUrlResolver&lt;span class="TPbracket"&gt;() )&lt;/span&gt;;
            StringBuilder sbResult &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StringBuilder&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            StringWriter swResult &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StringWriter&lt;span class="TPbracket"&gt;( &lt;/span&gt;sbResult &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            xsl&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;_xmldocAll, &lt;span class="TPkeyword1"&gt;null&lt;/span&gt;, swResult, &lt;span class="TPkeyword1"&gt;null &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            _strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;sbResult&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public void &lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;_strPostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public void &lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strPostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;blogid &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;idBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;userid &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;useridBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;pwd &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;pwdBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;title &lt;span class="TPoperator"&gt;= &lt;/span&gt;_nodSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;titleBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;]&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Value;
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;bPublish &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;true&lt;/span&gt;;
            DateTime dtNow &lt;span class="TPoperator"&gt;= &lt;/span&gt;DateTime&lt;span class="TPoperator"&gt;.&lt;/span&gt;Now;
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post p &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            p&lt;span class="TPoperator"&gt;.&lt;/span&gt;title &lt;span class="TPoperator"&gt;= &lt;/span&gt;title &lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;dtNow&lt;span class="TPbracket"&gt;)&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;yyyy.MM.dd&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            p&lt;span class="TPoperator"&gt;.&lt;/span&gt;dateCreated &lt;span class="TPoperator"&gt;= &lt;/span&gt;dtNow;
            p&lt;span class="TPoperator"&gt;.&lt;/span&gt;description &lt;span class="TPoperator"&gt;= &lt;/span&gt;strPostBody;
            IMetaWeblog metablog &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;MetaWeblog&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            metablog&lt;span class="TPoperator"&gt;.&lt;/span&gt;newPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;blogid, userid, pwd, p, bPublish&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;url, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;user, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            HttpWebRequest request &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;HttpWebRequest&lt;span class="TPbracket"&gt;)&lt;/span&gt;HttpWebRequest&lt;span class="TPoperator"&gt;.&lt;/span&gt;Create&lt;span class="TPbracket"&gt;(&lt;/span&gt;url&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            request&lt;span class="TPoperator"&gt;.&lt;/span&gt;Credentials &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;NetworkCredential&lt;span class="TPbracket"&gt;(&lt;/span&gt;user, password&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            WebResponse response &lt;span class="TPoperator"&gt;= &lt;/span&gt;request&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetResponse&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            StreamReader reader &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StreamReader&lt;span class="TPbracket"&gt;(&lt;/span&gt;response&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetResponseStream&lt;span class="TPbracket"&gt;())&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;responseString &lt;span class="TPoperator"&gt;= &lt;/span&gt;reader&lt;span class="TPoperator"&gt;.&lt;/span&gt;ReadToEnd&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            reader&lt;span class="TPoperator"&gt;.&lt;/span&gt;Close&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;responseString;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;excerpt from communityserver.config 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;...
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="TPcomment"&gt;!-- 2009.03.15, css: added for daily twitter summary post; daily update relies on daily app pool cycling !! --&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;Thread minutes=&lt;span class="TPstring"&gt;&amp;quot;1320&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;task 
        name = &lt;span class="TPstring"&gt;&amp;quot;fnGetAndPostJob&amp;quot; 
        &lt;/span&gt;type = &lt;span class="TPstring"&gt;&amp;quot;fractalnavel.CS.Components.GetAndPostJob, fractalnavel.CS&amp;quot; 
        &lt;/span&gt;enabled = &lt;span class="TPstring"&gt;&amp;quot;true&amp;quot; 
        &lt;/span&gt;enableShutDown = &lt;span class="TPstring"&gt;&amp;quot;false&amp;quot; 
        &lt;/span&gt;hrefGet=&lt;span class="TPstring"&gt;&amp;quot;http://twitter.com/statuses/user_timeline.xml&amp;quot; 
        &lt;/span&gt;useridGet=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
        &lt;/span&gt;pwdGet=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
        &lt;/span&gt;hrefXsl=&lt;span class="TPstring"&gt;&amp;quot;http://blogs.no-ip.org/GetAndPost.xsl&amp;quot; 
        &lt;/span&gt;idBlog=&lt;span class="TPstring"&gt;&amp;quot;fractalnavel&amp;quot; 
        &lt;/span&gt;useridBlog=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
        &lt;/span&gt;pwdBlog=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
        &lt;/span&gt;titleBlog=&lt;span class="TPstring"&gt;&amp;quot;a day in a life&amp;quot; 
        &lt;/span&gt;hours=&lt;span class="TPstring"&gt;&amp;quot;24&amp;quot; 
        &lt;/span&gt;bPostNone=&lt;span class="TPstring"&gt;&amp;quot;false&amp;quot; 
        &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;Thread&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
...&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;GetAndPost.xsl 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;?&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;xsl:stylesheet &lt;/span&gt;&lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;xmlns:xsl=&lt;span class="TPstring"&gt;&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    
&lt;span class="TPkeyword1"&gt;&amp;lt;xsl:output &lt;/span&gt;method=&lt;span class="TPstring"&gt;&amp;#39;html&amp;#39; 
            &lt;/span&gt;omit-xml-declaration=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
            &lt;/span&gt;version=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot;
            &lt;/span&gt;encoding=&lt;span class="TPstring"&gt;&amp;quot;UTF-8&amp;quot;
            &lt;/span&gt;indent=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
            &lt;/span&gt;cdata-section-elements=&lt;span class="TPstring"&gt;&amp;quot;&amp;quot;
            &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt; &lt;/span&gt;
    
    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;/statuses&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTAll&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTHead&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                via &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;a &lt;span class="TPkeyword3"&gt;href&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;http://www.twitter.com/fractalnavel&amp;quot; &lt;/span&gt;target=&lt;span class="TPstring"&gt;&amp;quot;_blank&amp;quot; 
                &lt;/span&gt;title=&lt;span class="TPstring"&gt;&amp;quot;twitter!&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;@fractalnavel&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;a&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: in the last twenty-four hours:
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        
            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTBody&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:apply-templates &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot; &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:sort &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;position()&amp;quot; &lt;/span&gt;order=&lt;span class="TPstring"&gt;&amp;quot;descending&amp;quot; &lt;/span&gt;data-type=&lt;span class="TPstring"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:apply-templates&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTFoot&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                (pulled direct from twitter via custom cs job)
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            
        &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;created_at&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;text&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

&lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;so the &lt;em&gt;intent&lt;/em&gt; should be clear anyway.&amp;#160; &lt;/p&gt;

&lt;p&gt;there were a lot of links that assisted in one way or another, but the power went phlooey this morning for no apparent reason (interestingly, my modem/router was presciently bombing just minutes before that), so that combined with my laziness means you won&amp;#39;t see them here.&amp;#160; mostly just stuff on generic community server task creation, and the twitter api.&lt;/p&gt;

&lt;p&gt;other twitter related stuff to-do:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;do an updated CSModule for updating twitter when a post is created.&amp;#160; there is an old one out there.&amp;#160; somewhere.&amp;#160; but &lt;em&gt;my&lt;/em&gt; data stream is heading the other direction.&lt;/li&gt;

  &lt;li&gt;do a sidebar widget with ajaxy &amp;amp; configurable timeline display.&amp;#160; have it update &amp;amp; scroll, that sort of thing.&amp;#160; eh, for the addicts out there, sure, but for me ?&amp;#160; nahhh...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i did finally do something twitter-ish on the xo: installed &lt;a title="an ascii twitter client for linux, in perl" href="http://www.floodgap.com/software/ttytter/" target="_blank"&gt;TTYtter&lt;/a&gt;.&amp;#160; too bad there&amp;#39;s not a sugar-ized gui client.&amp;#160; and it seems any other linux friendly gui twitter clients will bloat too much once all the supporting stuff gets put in place.&amp;#160; best to do that on an xo running linux on a stick.&amp;#160; seriously, what&amp;#39;s the issue with expanding the storage there ?&amp;#160; for just a few bucks more, could increase it by an order of magnitude.&amp;#160; but it&amp;#39;s easy being an &lt;strike&gt;armchair&lt;/strike&gt; couch quarterback.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4868" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/xo/default.aspx">xo</category></item><item><title>technical difficulties</title><link>http://blogs.no-ip.org/fractalnavel/technical-difficulties.aspx</link><pubDate>Wed, 03 Dec 2008 19:57:32 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4727</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4727</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4727</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/technical-difficulties.aspx#comments</comments><description>&lt;p&gt;apparently craig&amp;#39;s s.o. decided december, holidays, a recession and major global economic difficulties were a prime indicator to put an addition onto the house.&amp;#160; this is where our server also resides.&amp;#160; and wouldn&amp;#39;t you know it, murphy also put in an appearance, directing the builders to cut the internet / tv cable.&lt;/p&gt;  &lt;p&gt;this was monday, 12/1.&amp;#160; apparently the cable company told them they were on a &amp;quot;10 day schedule&amp;quot; to get the cable fixed.&amp;#160; so craig went out and spliced in a temporary fix this morning.&amp;#160; yay for personal initiative !&amp;#160; boo for corporate america ! &lt;/p&gt;  &lt;p&gt;doesn&amp;#39;t take long to lose what little subscribers we have, and to lose various other connections.&lt;/p&gt;  &lt;p&gt;so hang on, there may be some more down time coming soon.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4727" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>impending hermit mode</title><link>http://blogs.no-ip.org/fractalnavel/impending-hermit-mode.aspx</link><pubDate>Tue, 11 Nov 2008 19:11:39 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4693</guid><dc:creator>fractalnavel</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4693</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4693</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/impending-hermit-mode.aspx#comments</comments><description>&lt;p&gt;i &lt;em&gt;swear&lt;/em&gt; i wasn&amp;#39;t going to go here this time, but it looks like it&amp;#39;s one of those &amp;quot;best laid plans...&amp;quot; things.&amp;#160; &lt;/p&gt;  &lt;p&gt;been messing with this site again.&amp;#160; added a first shot at &lt;a href="http://community.hydrussoftware.com/blogs/john/archive/2008/11/06/community-server-video-preview-module.aspx" target="_blank"&gt;video previews&lt;/a&gt; to the media gallery.&amp;#160; that&amp;#39;s not quite working the way i want, and it&amp;#39;s missing flexibility as well, but hey, a start is a start.&amp;#160; and i can always change the code myself.&lt;/p&gt;  &lt;p&gt;what else... oh yeah, &lt;a href="http://communityserver.com" target="_blank"&gt;community server&lt;/a&gt; 2008.5 sp1 is out now, and i&amp;#39;m thinking of applying that.&amp;#160; will have to be careful not to bump all these other customizations.&amp;#160; it has a big list of fixes and enhancements.&lt;/p&gt;  &lt;p&gt;i keep trying to tell myself &amp;quot;do the last yard work of the season&amp;quot; - but it never happens.&amp;#160; excuses, excuses.&amp;#160; rain to come, wet leaves, long grass.&amp;#160; here i sit.&lt;/p&gt;  &lt;p&gt;haven&amp;#39;t felt like working out or shaving the last couple of days.&amp;#160; what&amp;#39;s &lt;em&gt;that&lt;/em&gt; all about ?&lt;/p&gt;  &lt;p&gt;demotivated.&amp;#160; as always.&amp;#160; tech is to avoid facing other &amp;quot;necessities&amp;quot;.&amp;#160; i deny their essential necessariness. (huh?)&lt;/p&gt;  &lt;p&gt;need new tires.&amp;#160; not really a good idea to drive up into snow / ice areas without better treads than i have.&amp;#160; i will get to that - when ?&amp;#160; can&amp;#39;t order / install tires online.&amp;#160; *sigh*&lt;/p&gt;  &lt;p&gt;some interesting browsing lately, of which only some is found on any of my bookmark lists.&amp;#160; best to track &lt;a title="rss" href="http://feeds.feedburner.com/FractalnavelBrowsingHistory" target="_blank"&gt;my browsing feed&lt;/a&gt;.&amp;#160; no history to that, unless you&amp;#39;ve been keeping up, or if you&amp;#39;re me and have access to the source.&amp;#160; yeah, it&amp;#39;s boring twaddle (twiddle?) 95% of the time, but then there are days... unfortunately, i do a lot of browsing that never reaches my google history, being from machines that don&amp;#39;t have the google toolbar installed.&amp;#160; did a good bit of rabbit-holing over at wikipedia the other day.&amp;#160; something along the lines of &lt;a title="wikipedia entry" href="http://en.wikipedia.org/wiki/Historiography" target="_blank"&gt;historiography&lt;/a&gt; would be a start.&amp;#160; there, it&amp;#39;s on the list now too.&lt;/p&gt;  &lt;p&gt;* * * * *&lt;/p&gt;  &lt;p&gt;part of the trouble seems to be that brief two-day return to work last week.&amp;#160; i need to put that shit out of my brain, but it always takes a week or two.&amp;#160; was getting a late dinner at &lt;a title="hey, new website !" href="http://salemgardens.org/" target="_blank"&gt;the local dive&lt;/a&gt;, and i was barely sitting down before someone was in my ear about a local event downtown over the weekend, which was run by the customer i need a break from.&amp;#160; they have been exceeding themselves lately in ways i never imagined - and not positively.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4693" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>well, it was nice outside today, but ...</title><link>http://blogs.no-ip.org/fractalnavel/well-it-was-nice-outside-today-but.aspx</link><pubDate>Sun, 02 Nov 2008 21:46:58 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4672</guid><dc:creator>fractalnavel</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4672</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4672</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/well-it-was-nice-outside-today-but.aspx#comments</comments><description>&lt;p&gt;i&amp;#39;m, like, a world class slacker.&amp;#160; absolutely gorgeous fall weekend, colors at their peak, and really, i should have been hiking &amp;amp; doing yard work &amp;amp; ...&lt;/p&gt;  &lt;p&gt;but no, not me.&amp;#160; i sit inside and tweak on the blog more.&amp;#160; just some niggling stuff:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;i want any brief post excerpts i create to appear as post subtitles.&amp;#160; that&amp;#39;s because the post &lt;em&gt;titles&lt;/em&gt; tend to be playful, while i actually try and be more or less plainly descriptive in the excerpts. &lt;/li&gt;    &lt;li&gt;post lists have had a date-time heading for &lt;em&gt;each post&lt;/em&gt;, whereas there should only be a date heading for all the posts on that day. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;so i monkeyed around with those until i got all the details straight.&amp;#160; yeah, big deal, i know...&lt;/p&gt;  &lt;hr style="width:100px;text-align:left;" /&gt;  &lt;p&gt;so the same customer that i&amp;#39;ve been &lt;strike&gt;playing&lt;/strike&gt;, er, working at the last few years contacted me last week, hopefully just some minor short-term stuff.&amp;#160; unless they really wanted to start doing all the good shit they &lt;em&gt;should&lt;/em&gt; be doing.&amp;#160; not likely.&amp;#160; there&amp;#39;s a new manager there, i think this is more of his way of getting to know what resources he has available to him.&amp;#160; eh, whatever.&amp;#160; i&amp;#39;ve had october off, and this feeds right into my avoidance syndrome, so what the hey.&amp;#160; i find out more tomorrow.&lt;/p&gt;  &lt;hr style="width:100px;text-align:left;" /&gt;  &lt;p&gt; &lt;a title="pizza! &amp;amp; stuff" href="http://larosas.com" target="_blank"&gt;larosa&amp;#39;s&lt;/a&gt; delivery is on the way.&lt;/p&gt;  &lt;p&gt;at least i did &lt;em&gt;one&lt;/em&gt; good thing for self last week - zero beer intake.&amp;#160; yeah, that&amp;#39;ll throw some of you, but i was doing the neighborhood pub thing monday through friday, and then stocking up on six-packs for the weekends.&amp;#160; not good.&amp;#160; especially since i&amp;#39;ve been trying to get in regular workouts for the last month, shed some of this pudge, add some shape, whatever.&amp;#160; those beer etc. calories are the &lt;em&gt;real&lt;/em&gt; problem.&amp;#160; poor self. he&amp;#39;s, uh - &lt;em&gt;beside&lt;/em&gt; himself.&amp;#160; that makes two of us ;-)&amp;#160; &lt;/p&gt;  &lt;p&gt;how many is that now ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4672" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: what, again ?</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-what-again.aspx</link><pubDate>Wed, 29 Oct 2008 01:50:20 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4658</guid><dc:creator>fractalnavel</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4658</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4658</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-what-again.aspx#comments</comments><description>&lt;p&gt;so i’m yakking with &lt;a href="http://blogs.no-ip.org/craig"&gt;craig&lt;/a&gt; yesterday, and he mentions that stuff on this blog is broken in firefox – version 3.&amp;#160; i’m like, cvrap, it was working in v2…&lt;/p&gt;  &lt;p&gt;well, took a tweak here &amp;amp; there over the last couple of days, and some leftover config of community server that i hadn’t done, and things are working again.&amp;#160; even works on my xo’s browser now, so i’m guessing it’ll work on other stuff where it wasn’t before too. not&amp;#160; sure if it still works in ff2 now, but hey, i don’t care – upgrade :-p &lt;/p&gt;  &lt;p&gt;mostly had to do with adapting to more recent changes in the mozilla / gecko dom, javascript, xslt &amp;amp; other components. nah, you don’t really want the details…&lt;sup style="font-size:0.7em;"&gt;[1]&lt;/sup&gt;&lt;/p&gt;  &lt;p&gt;and apparently feedburner was not (any longer?) accepting server-side xmlhttp requests without a user agent set, so i took care of that too.&amp;#160; kind of strange, though – they were returning a 404, where maybe a 403 of some sort would have been more appropriate.&lt;/p&gt;  &lt;hr style="width:200px;text-align:left;" /&gt;  &lt;div style="font-size:0.85em;"&gt;&lt;sup style="font-size:0.85em;"&gt;[1]&lt;/sup&gt; silly stuff:     &lt;ul&gt;     &lt;li&gt;javascript “eval” changed – can’t eval a statement fragment &lt;/li&gt;      &lt;li&gt;xml doc “evaluate” changed – must use the xml doc being evaluated against &lt;/li&gt;      &lt;li&gt;error object changes; error message changes (better, but different) &lt;/li&gt;      &lt;li&gt;cs config: needed to prevent web.config inheritance for my cross-domain feed proxy &lt;/li&gt;      &lt;li&gt;xslt change – doesn’t just blow off msxsl:script anymore &lt;/li&gt;      &lt;li&gt;xslt even wraps &amp;lt;xsl:output method=”html”/&amp;gt; results in a “transformiix” node if there isn’t a single root node in the result – needed some changes for this to allow proper “refresh” with my transform behavior &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;i don’t even think that’s a complete list.&amp;#160; good thing i had already built-in a lot of tracing / error handling when i went through this cross-browser stuff last winter.&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4658" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/xo/default.aspx">xo</category></item><item><title>tech notes: …dink dink dink…</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-dink-dink-dink.aspx</link><pubDate>Sat, 25 Oct 2008 18:48:08 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4649</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4649</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4649</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-dink-dink-dink.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;still&lt;/em&gt; getting long-outstanding things done here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;finally fixed the dates on the images in the gallery.&amp;#160; they have been screwed up since the original migration to &lt;a href="http://communityserver.com" target="_blank"&gt;community server&lt;/a&gt; two years ago &lt;/li&gt;    &lt;li&gt;fixed search operation from blog pages (was only working from aggregate &amp;amp; other pages).&amp;#160; gotta be careful with the order of things in siteurls.config when placing blogs at the site root&lt;/li&gt;    &lt;li&gt;fixed a strange bug where if a blog post name or number is referenced and doesn’t exist, a page with all the comments from that blog is returned – ! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;that last one is really a problem with the &lt;a href="http://docs.communityserver.com/developer-options/chameleon/control-documentation/Control.aspx?type=CommunityServer.Blogs.Controls.WeblogFeedbackList%2c+CommunityServer.Blogs" target="_blank"&gt;&amp;lt;CSBlog:WeblogFeedbackList /&amp;gt;&lt;/a&gt; control, but never mind that, i don’t even want the post page showing up at all – why isn’t a 404 generated ?&lt;/p&gt;  &lt;p&gt;so i created post404.ascx in the blog theme folder:&lt;/p&gt;   &lt;blockquote&gt;   &lt;pre&gt;&lt;span class="tpoperator"&gt;&amp;lt;%&lt;/span&gt;@ Control Language&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;C#&amp;quot; &lt;/span&gt;&lt;span class="tpoperator"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="tpoperator"&gt;&amp;lt;%&lt;/span&gt;@ Import Namespace&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;CommunityServer.Controls&amp;quot; &lt;/span&gt;&lt;span class="tpoperator"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="tpoperator"&gt;&amp;lt;%&lt;/span&gt;@ Import Namespace&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;CommunityServer.Components&amp;quot; &lt;/span&gt;&lt;span class="tpoperator"&gt;%&amp;gt;&lt;/span&gt;

&lt;span class="tpoperator"&gt;&amp;lt;&lt;/span&gt;script runat&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="tpoperator"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="tpkeyword1"&gt;protected override void &lt;/span&gt;OnInit&lt;span class="tpbracket"&gt;(&lt;/span&gt;EventArgs e&lt;span class="tpbracket"&gt;)&lt;/span&gt;
&lt;span class="tpbracket"&gt;{&lt;/span&gt;
    &lt;span class="tpkeyword1"&gt;base&lt;/span&gt;&lt;span class="tpoperator"&gt;.&lt;/span&gt;OnInit&lt;span class="tpbracket"&gt;(&lt;/span&gt;e&lt;span class="tpbracket"&gt;)&lt;/span&gt;;
    Post post &lt;span class="tpoperator"&gt;= &lt;/span&gt;CSContext&lt;span class="tpoperator"&gt;.&lt;/span&gt;Current&lt;span class="tpoperator"&gt;.&lt;/span&gt;GetCurrent&lt;span class="tpoperator"&gt;&amp;lt;&lt;/span&gt;Post&lt;span class="tpoperator"&gt;&amp;gt;&lt;/span&gt;&lt;span class="tpbracket"&gt;()&lt;/span&gt;;
    &lt;span class="tpkeyword1"&gt;if &lt;/span&gt;&lt;span class="tpbracket"&gt;( &lt;/span&gt;post &lt;span class="tpoperator"&gt;== &lt;/span&gt;&lt;span class="tpkeyword1"&gt;null &lt;/span&gt;&lt;span class="tpoperator"&gt;|| &lt;/span&gt;&lt;span class="tpbracket"&gt;( &lt;/span&gt;post&lt;span class="tpoperator"&gt;.&lt;/span&gt;PostID &lt;span class="tpoperator"&gt;== &lt;/span&gt;&lt;span class="tpnumber"&gt;0 &lt;/span&gt;&lt;span class="tpoperator"&gt;&amp;amp;&amp;amp; &lt;/span&gt;String&lt;span class="tpoperator"&gt;.&lt;/span&gt;IsNullOrEmpty&lt;span class="tpbracket"&gt;(&lt;/span&gt;post&lt;span class="tpoperator"&gt;.&lt;/span&gt;Name&lt;span class="tpbracket"&gt;) ) )&lt;/span&gt;
        &lt;span class="tpkeyword1"&gt;throw &lt;/span&gt;&lt;span class="tpkeyword2"&gt;new &lt;/span&gt;System&lt;span class="tpoperator"&gt;.&lt;/span&gt;Web&lt;span class="tpoperator"&gt;.&lt;/span&gt;HttpException&lt;span class="tpbracket"&gt;( &lt;/span&gt;&lt;span class="tpnumber"&gt;404&lt;/span&gt;, &lt;span class="tpstring"&gt;&amp;quot;&amp;quot; &lt;/span&gt;&lt;span class="tpbracket"&gt;)&lt;/span&gt;;
&lt;span class="tpbracket"&gt;}&lt;/span&gt;
&lt;span class="tpoperator"&gt;&amp;lt;/&lt;/span&gt;script&lt;span class="tpoperator"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;and added the following&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;span class="tpoperator"&gt;&amp;lt;%&lt;/span&gt;@ Register TagPrefix&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;CSUserControl&amp;quot; &lt;/span&gt;TagName&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;Post404Check&amp;quot; &lt;/span&gt;Src&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;Post404.ascx&amp;quot; &lt;/span&gt;&lt;span class="tpoperator"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="tpoperator"&gt;...&lt;/span&gt;
&lt;span class="tpoperator"&gt;&amp;lt;&lt;/span&gt;CSUserControl&lt;span class="tpoperator"&gt;:&lt;/span&gt;Post404Check runat&lt;span class="tpoperator"&gt;=&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;server&amp;quot; &lt;/span&gt;&lt;span class="tpoperator"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;in the blog theme’s post.aspx page.&amp;#160; that last part is at the beginning of the first asp:Content tag’s contents. &lt;/p&gt;

&lt;p&gt;what i don’t like is that the 404 page comes up with aspxerrorpath set to the rewritten path of the page, rather than the external form.&amp;#160; couldn’t find anything on changing that while still preserving the 404 error code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4649" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: anything to avoid having to do “real” work</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-anything-to-avoid-having-to-do-real-work.aspx</link><pubDate>Fri, 24 Oct 2008 18:05:20 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4644</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4644</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4644</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-anything-to-avoid-having-to-do-real-work.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.no-ip.org/fractalnavel/tech-notes-wrapping-up-the-blog-update-thing.aspx"&gt;i lied&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;sort of.&lt;/p&gt;  &lt;p&gt;i dinked around with a bunch of different &lt;a href="http://communityserver.com" target="_blank"&gt;community server&lt;/a&gt; stuff this past week:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="ask crome" href="http://askcrome.co.uk/community-server/mods/separating-home-and-dashboard-pages/" target="_blank"&gt;separated the home page &amp;amp; “dashboard” views&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;added identicon handling for the media gallery, and fixed a couple glitches &lt;/li&gt;    &lt;li&gt;added &lt;a href="http://blogs.no-ip.org/media/p/4640.aspx"&gt;detailed meta tag description handling&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;fixed an issue with &lt;a href="http://blogs.no-ip.org/media/p/4631.aspx"&gt;del.icio.us auto-posting&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;made a number of changes to siteurls.config so that old style post links would still work &lt;/li&gt;    &lt;li&gt;monkeyed around with comment spam filter settings &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;oh, there’s probably a few other things.&lt;/p&gt;  &lt;p&gt;although we do accept anonymous comments, please log in first, it keeps your stuff associated with &lt;em&gt;you&lt;/em&gt;, and let’s you play with other fun features.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4644" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: wrapping up the blog update thing</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-wrapping-up-the-blog-update-thing.aspx</link><pubDate>Fri, 17 Oct 2008 20:11:22 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4632</guid><dc:creator>fractalnavel</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4632</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4632</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-wrapping-up-the-blog-update-thing.aspx#comments</comments><description>&lt;p&gt;ok:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;upgraded to &lt;a href="http://communityserver.com" target="_blank"&gt;community server&lt;/a&gt; 2008.5, including keeping all the add-ons working; &lt;/li&gt;    &lt;li&gt;added &lt;a href="http://en.wikipedia.org/wiki/Identicon" target="_blank"&gt;identicon&lt;/a&gt; handling for anonymous &amp;amp; non-avatar weblog comments – see &lt;a href="http://blogs.no-ip.org/media/p/4630.aspx"&gt;CarKnee.CS.Bundle v4.5&lt;/a&gt;; &lt;/li&gt;    &lt;li&gt;fixed the &lt;a href="http://del.icio.us" target="_blank"&gt;del.icio.us&lt;/a&gt; auto-posting – see &lt;a href="http://blogs.no-ip.org/media/p/4631.aspx"&gt;del.icio.us.ashx for community server&lt;/a&gt;; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;disclaimer on those code mods:&amp;#160; they were just quick &amp;amp; dirty “fixes”, but i posted them anyway just in case someone may find them useful.&amp;#160; i couldn’t immediately find similar work out there, so why not.&lt;/p&gt;  &lt;p&gt;that should be it for this site for the moment.&amp;#160; the fun part is now just getting to know &amp;amp; start using all these shiny new toys.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4632" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>tech notes: more to fix</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-more-to-fix.aspx</link><pubDate>Wed, 08 Oct 2008 20:06:21 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4600</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4600</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4600</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-more-to-fix.aspx#comments</comments><description>&lt;blockquote&gt;   &lt;table class="blogpostjobs"&gt;       &lt;tr&gt;         &lt;th&gt;job_name&lt;/th&gt;          &lt;th&gt;out_username&lt;/th&gt;          &lt;th&gt;out_password&lt;/th&gt;          &lt;th&gt;out_url&lt;/th&gt;          &lt;th&gt;out_blog_id&lt;/th&gt;          &lt;th&gt;out_cat_id&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td align="center" rowspan="2"&gt;posttofractalnavel&lt;/td&gt;          &lt;td&gt;&lt;i&gt;(encrypted)&lt;/i&gt;&lt;/td&gt;          &lt;td&gt;&lt;i&gt;(encrypted)&lt;/i&gt;&lt;/td&gt;          &lt;td&gt;http://blogs.no-ip.org/blogs/del.icio.us.ashx&lt;/td&gt;          &lt;td&gt;fractalnavel&lt;/td&gt;          &lt;td&gt;1040&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="5"&gt;&lt;b&gt;Next run at:&lt;/b&gt;             &lt;br /&gt;[10/09/08 11:00:00 AM -0700]             &lt;br /&gt;&lt;b&gt;Last run notes:&lt;/b&gt;             &lt;br /&gt;[10/08/08 11:00:02 AM -0700] Setting category &amp;#39;1040&amp;#39; for blog post &amp;#39;4597&amp;#39; ...ERROR: Failed Category Post due to XML RPC2 Exception: 0 : request contains string value where integer expected [request : parameter 1] &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/blockquote&gt;  &lt;p&gt;i seem to remember that i had to change this before too. wtf ? oh well, add it to the list *sigh*&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4600" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>metablog: it's nice to share</title><link>http://blogs.no-ip.org/fractalnavel/metablog-it-s-nice-to-share.aspx</link><pubDate>Thu, 13 Mar 2008 02:08:08 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:3389</guid><dc:creator>fractalnavel</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=3389</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=3389</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/metablog-it-s-nice-to-share.aspx#comments</comments><description>&lt;p&gt;added &lt;a title="download page" href="http://communityserver.org/media/galleries/csmodules/post518791.aspx" target="_blank"&gt;ScottWater.CS.Modules ShareIt module&lt;/a&gt; to this site.&amp;nbsp; interestingly, this two year old piece of code written for an older community server version (2.1) works just fine as is in v2007.1.&lt;/p&gt; &lt;p&gt;csmodule config as follows:&lt;/p&gt; &lt;blockquote&gt; &lt;style type="text/css"&gt;
.tptext { color: #000000; background-color: #ffffff; }
.tpkeyword1 { color: #0000ff; background-color: #ffffff; }
.tpkeyword3 { color: #000080; background-color: #ffffff; }
.tpcomment { color: #008000; background-color: #ffffff; }
.tpstring { color: #008080; background-color: #ffffff; }
&lt;/style&gt;  &lt;div class="tptext divPicFrame"&gt;&lt;pre&gt;  &lt;span class="tpkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tpcomment"&gt;!--
  2008.03.12, css: added for v2.1 of shareit csmodule - will it work ?
  note that there&amp;#39;s a bug in the link element&amp;#39;s title attribute handling.
  --&lt;/span&gt;&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="tpkeyword1"&gt;&amp;lt;add&lt;/span&gt;
  &lt;span class="tpkeyword3"&gt;name&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;ShareIt&amp;quot; &lt;/span&gt;
  &lt;span class="tpkeyword3"&gt;type &lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;ScottWater.CS.Modules.ShareItModule, ScottWater.CS.Modules&amp;quot; &lt;/span&gt;
  web=&lt;span class="tpstring"&gt;&amp;quot;true&amp;quot; &lt;/span&gt;syndicate=&lt;span class="tpstring"&gt;&amp;quot;false&amp;quot; &lt;/span&gt;&lt;span class="tpkeyword3"&gt;text&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="tpkeyword1"&gt;&amp;lt;link &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;text&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;#39;&amp;amp;lt;img src=&amp;quot;/images/shareit/delicious.gif&amp;quot;
    	height=&amp;quot;16&amp;quot; border=&amp;quot;0&amp;quot;
    	style=&amp;quot;vertical-align: -20%;&amp;quot; /&amp;amp;gt;&amp;#39; &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;url&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;http://del.icio.us/post?url=[url][ ^ ];title=[title]&amp;quot; &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;title&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;Submit [title] to del.icio.us&amp;quot; &lt;/span&gt;
    /&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="tpkeyword1"&gt;&amp;lt;link &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;text&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;#39;&amp;amp;lt;img src=&amp;quot;/images/shareit/digg.gif&amp;quot;
    	height=&amp;quot;16&amp;quot; border=&amp;quot;0&amp;quot;
    	style=&amp;quot;vertical-align: -20%;&amp;quot; /&amp;amp;gt;&amp;#39; &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;url&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;http://www.digg.com/submit?url=[url][ ^ ];phase=2&amp;quot; &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;title&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;Submit [title] to digg.com&amp;quot; &lt;/span&gt;
    /&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="tpkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tpcomment"&gt;!-- AddThis Button BEGIN --&lt;/span&gt;&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="tpkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tpcomment"&gt;!-- 2008.03.12, css: note hack of url attribute value
    	 in order to get event handlers inline. --&lt;/span&gt;&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="tpkeyword1"&gt;&amp;lt;link &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;text&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;#39;&amp;amp;lt;img src=&amp;quot;http://s9.addthis.com/button1-share.gif&amp;quot;
    	width=&amp;quot;125&amp;quot; height=&amp;quot;16&amp;quot; border=&amp;quot;0&amp;quot; alt=&amp;quot;&amp;quot;
    	style=&amp;quot;vertical-align: -20%;&amp;quot; /&amp;amp;gt;&amp;#39; &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;url&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;#39;http://www.addthis.com/bookmark.php&amp;quot;
    	onMouseOver=&amp;quot;return addthis_open(this, &amp;amp;#39;&amp;amp;#39;, &amp;amp;#39;[url]&amp;amp;#39;, &amp;amp;#39;[title]&amp;amp;#39;)&amp;quot;
    	onMouseOut=&amp;quot;addthis_close()&amp;quot;
    	onClick=&amp;quot;return addthis_sendto()&amp;#39; &lt;/span&gt;
    &lt;span class="tpkeyword3"&gt;title&lt;/span&gt;=&lt;span class="tpstring"&gt;&amp;quot;&amp;quot; &lt;/span&gt;
    /&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="tpkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tpcomment"&gt;!-- AddThis Button END --&lt;/span&gt;&lt;span class="tpkeyword1"&gt;&amp;gt;&lt;/span&gt;

  &lt;span class="tpkeyword1"&gt;&amp;lt;/add&lt;/span&gt;&lt;span class="tpkeyword1"&gt;&amp;gt;          &lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;yeah, there &lt;em&gt;is&lt;/em&gt; a bug in that code that prevents a link element&amp;#39;s title attribute value from being used: 
&lt;blockquote&gt;
&lt;style type="text/css"&gt;
.tptext { color: #000000; }
.tpkeyword1 { color: #0000ff; }
.tpstring { color: #008080; }
.tpbracket { color: #ff0000; }
.tpoperator { color: #000000; }
&lt;/style&gt;

&lt;div class="tptext divPicFrame"&gt;&lt;pre&gt;...
  att &lt;span class="tpoperator"&gt;= &lt;/span&gt;addNode&lt;span class="tpoperator"&gt;.&lt;/span&gt;Attributes&lt;span class="tpbracket"&gt;[&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span class="tpbracket"&gt;]&lt;/span&gt;;
  &lt;span class="tpkeyword1"&gt;string &lt;/span&gt;addTitle &lt;span class="tpoperator"&gt;= &lt;/span&gt;&lt;span class="tpkeyword1"&gt;null&lt;/span&gt;;
  &lt;span class="tpkeyword1"&gt;if &lt;/span&gt;&lt;span class="tpbracket"&gt;(&lt;/span&gt;att &lt;span class="tpoperator"&gt;== &lt;/span&gt;&lt;span class="tpkeyword1"&gt;null&lt;/span&gt;&lt;span class="tpbracket"&gt;)&lt;/span&gt;
  &lt;span class="tpbracket"&gt;{&lt;/span&gt;
      addTitle &lt;span class="tpoperator"&gt;= &lt;/span&gt;att&lt;span class="tpoperator"&gt;.&lt;/span&gt;Value&lt;span class="tpoperator"&gt;.&lt;/span&gt;Replace&lt;span class="tpbracket"&gt;(&lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;[title]&amp;quot;&lt;/span&gt;,&lt;span class="tpstring"&gt;&amp;quot;{1}&amp;quot;&lt;/span&gt;&lt;span class="tpbracket"&gt;)&lt;/span&gt;;
  &lt;span class="tpbracket"&gt;}&lt;/span&gt;
  &lt;span class="tpkeyword1"&gt;else&lt;/span&gt;
  &lt;span class="tpbracket"&gt;{&lt;/span&gt;
      addTitle &lt;span class="tpoperator"&gt;= &lt;/span&gt;&lt;span class="tpstring"&gt;&amp;quot;Post {2}&amp;quot;&lt;/span&gt;;
  &lt;span class="tpbracket"&gt;}&lt;/span&gt;
...&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;that condition should be &amp;quot;&lt;font face="Courier New" size="3"&gt;&lt;span class="tpoperator"&gt;&lt;strong&gt;!&lt;/strong&gt;=&lt;/span&gt;&lt;/font&gt;&amp;quot;.&amp;nbsp; 
&lt;li&gt;for the &amp;quot;addthis&amp;quot; link, managed to construct the url value so that the module spits out an anchor with event handlers.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;there were a couple of other minor changes i made to this module for a client: removed the hard-coded use of &amp;lt;strong/&amp;gt; tags around the text; and&amp;nbsp;added link item separator configuration.&amp;nbsp; and i also use images and not text for the links as well.&lt;/p&gt;
&lt;p&gt;and oh yeah: specific settings like the account etc. go in script tags in the &amp;quot;site header&amp;quot;; while the addthis script reference goes into the &amp;quot;copyright&amp;quot; setting (like the google analytics call), since there&amp;#39;s no &amp;quot;site footer&amp;quot;.&lt;/p&gt;
&lt;p&gt;yeah, ok, for some of you this is just &lt;em&gt;soo&lt;/em&gt; exciting.&amp;nbsp; hey, but i like the results.&amp;nbsp; just ignore this post, and use the things.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=3389" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item><item><title>metablog: sunrise, sunset...</title><link>http://blogs.no-ip.org/fractalnavel/metablog-sunrise-sunset.aspx</link><pubDate>Wed, 12 Mar 2008 15:27:33 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:3384</guid><dc:creator>fractalnavel</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=3384</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=3384</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/metablog-sunrise-sunset.aspx#comments</comments><description>&lt;p&gt;fiddler on the roof ?&amp;nbsp; nah.&amp;nbsp; i just put the world sunrise map image in the sidebar.&amp;nbsp; i always like following the equinox there (about a week from today), seeing the straight up and down terminator.&lt;/p&gt; &lt;div style="text-align:center;"&gt; &lt;div class="divPicFrame" style="width:490px;padding-top:2px;text-align:center;"&gt;&lt;a href="http://www.die.net/earth/mercator.html" target="_blank"&gt;&lt;img style="margin:0px;" alt="world sunlight map" src="http://gmodules.com/ig/proxy?url=http%3A%2F%2Fstatic.die.net%2Fearth%2Fmercator%2F480.jpg" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;div style="font-size:0.85em;font-style:italic;"&gt;world sunlight map at die.net&lt;/div&gt;&lt;/div&gt; &lt;p&gt;of course, that&amp;#39;s only relative to the projection being parallel to the axis of rotation, but what the hey, anthropic biases be damned, it&amp;#39;s still fun to watch.&lt;/p&gt; &lt;p&gt;ok, i admit, i&amp;#39;m oddly - if not necessarily easily - entertained.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=3384" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/_2800_e._2900_t_2E00_/default.aspx">(e.)t.</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item></channel></rss>